SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite-Erstellungsansicht

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.