Zusammenfassung :In diesem Tutorial lernen Sie, wie Sie SQLite CREATE VIEW verwenden -Anweisung zum Erstellen einer neuen Ansicht in der Datenbank.
Was ist eine Ansicht
In der Datenbanktheorie ist eine Ansicht eine Ergebnismenge einer gespeicherten Abfrage. Eine Ansicht ist die Möglichkeit, eine Abfrage in ein benanntes Objekt zu packen, das in der Datenbank gespeichert ist.
Über einen View können Sie auf die Daten der zugrunde liegenden Tabellen zugreifen. Die Tabellen, auf die sich die Abfrage in der Ansichtsdefinition bezieht, werden als Basistabellen bezeichnet.
Eine Ansicht ist in einigen Fällen nützlich:
- Erstens bieten Ansichten eine Abstraktionsschicht über Tabellen. Sie können die Spalten in der Ansicht hinzufügen und entfernen, ohne das Schema der zugrunde liegenden Tabellen zu berühren.
- Zweitens können Sie Ansichten verwenden, um komplexe Abfragen mit Verknüpfungen zu kapseln, um den Datenzugriff zu vereinfachen.
Die SQLite-Ansicht ist schreibgeschützt. Das bedeutet, dass Sie INSERT nicht verwenden können , DELETE , und UPDATE Anweisungen zum Aktualisieren von Daten in den Basistabellen über die Ansicht.
SQLite CREATE VIEW Erklärung
Um eine Ansicht zu erstellen, verwenden Sie CREATE VIEW Anweisung wie folgt:
CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS
select-statement;Code language: SQL (Structured Query Language) (sql)
Geben Sie zunächst einen Namen für die Ansicht an. Der IF NOT EXISTS Option erstellt nur dann eine neue Ansicht, wenn sie nicht vorhanden ist. Wenn die Ansicht bereits vorhanden ist, tut sie nichts.
Verwenden Sie zweitens den TEMP oder TEMPORARY Option, wenn die Ansicht nur in der aktuellen Datenbankverbindung sichtbar sein soll. Die Ansicht wird als temporäre Ansicht bezeichnet und SQLite entfernt automatisch die temporäre Ansicht, wenn die Datenbankverbindung geschlossen wird.
Geben Sie drittens ein SELECT an Erklärung für die Ansicht. Standardmäßig werden die Spalten der Ansicht von der Ergebnismenge des SELECT abgeleitet Erklärung. Sie können den View-Spalten jedoch andere Namen als den Spaltennamen der Tabelle zuweisen
SQLite CREATE VIEW Beispiele
Nehmen wir einige Beispiele für das Erstellen einer neuen Ansicht mit CREATE VIEW Erklärung.
1) Erstellen einer Ansicht zur Vereinfachung einer komplexen Abfrage
Die folgende Abfrage ruft Daten von den tracks ab , albums , media_types und genres Tabellen in der Beispieldatenbank mit der inneren Join-Klausel.
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql) Probieren Sie es aus
Um eine Ansicht basierend auf dieser Abfrage zu erstellen, verwenden Sie die folgende Anweisung:
CREATE VIEW v_tracks
AS
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql) Probieren Sie es aus
Von nun an können Sie die folgende einfache Abfrage anstelle der obigen komplexen Abfrage verwenden.
SELECT * FROM v_tracks;Code language: SQL (Structured Query Language) (sql) Probieren Sie es aus
2) Erstellen einer Ansicht mit benutzerdefinierten Spaltennamen
Die folgende Anweisung erstellt eine Ansicht namens v_albums die den Albumtitel und die Länge des Albums in Minuten enthält:
CREATE VIEW v_albums (
AlbumTitle,
Minutes
)
AS
SELECT albums.title,
SUM(milliseconds) / 60000
FROM tracks
INNER JOIN
albums USING (
AlbumId
)
GROUP BY AlbumTitle;
Code language: SQL (Structured Query Language) (sql)
In diesem Beispiel haben wir neue Spalten für die Ansicht AlbumTitle angegeben für albums.title Spalte und Minuten für den Ausdruck SUM(milliseconds) / 60000
Diese Abfrage gibt Daten aus v_albums zurück Ansicht:
SELECT * FROM v_albums;Code language: SQL (Structured Query Language) (sql)
In diesem Tutorial haben Sie etwas über Datenbankansichten und die Verwendung von CREATE VIEW gelernt -Anweisung zum Erstellen neuer Ansichten in SQLite.