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.