sql >> Databasteknik >  >> RDS >> SQLite

SQLite Skapa vy

Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite CREATE VIEW för att skapa en ny vy i databasen.

Vad är en vy

I databasteorin är en vy en resultatuppsättning av en lagrad fråga. En vy är sättet att packa en fråga i ett namngivet objekt lagrat i databasen.

Du kan komma åt data för de underliggande tabellerna genom en vy. Tabellerna som frågan i vydefinitionen refererar till kallas bastabeller.

En vy är användbar i vissa fall:

  • För det första ger vyer ett abstraktionslager över tabeller. Du kan lägga till och ta bort kolumnerna i vyn utan att röra schemat för de underliggande tabellerna.
  • För det andra kan du använda vyer för att kapsla in komplexa frågor med kopplingar för att förenkla dataåtkomsten.

SQLite-vyn är skrivskyddad. Det betyder att du inte kan använda INSERT , DELETE och UPDATE satser för att uppdatera data i bastabellerna genom vyn.

SQLite CREATE VIEW uttalande

För att skapa en vy använder du CREATE VIEW uttalande enligt följande:

CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS 
   select-statement;Code language: SQL (Structured Query Language) (sql)

Ange först ett namn för vyn. IF NOT EXISTS alternativet skapar bara en ny vy om den inte finns. Om vyn redan finns gör den ingenting.

För det andra, använd TEMP eller TEMPORARY alternativet om du vill att vyn endast ska vara synlig i den aktuella databasanslutningen. Vyn kallas en temporär vy och SQLite tar automatiskt bort den tillfälliga vyn när databasanslutningen stängs.

För det tredje, ange en SELECT uttalande för synen. Som standard härrör vyns kolumner från resultatuppsättningen för SELECT påstående. Du kan dock tilldela namnen på vykolumnerna som skiljer sig från tabellens kolumnnamn

SQLite CREATE VIEW exempel

Låt oss ta några exempel på hur du skapar en ny vy med CREATE VIEW uttalande.

1) Skapa en vy för att förenkla en komplex fråga

Följande fråga hämtar data från tracks , albums , media_types och genres tabeller i exempeldatabasen med hjälp av inner join-satsen.

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)

Prova det

För att skapa en vy baserad på den här frågan använder du följande sats:

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)

Prova det

Från och med nu kan du använda följande enkla fråga istället för den komplexa ovan.

SELECT * FROM v_tracks;Code language: SQL (Structured Query Language) (sql)

Prova det

2) Skapa en vy med anpassade kolumnnamn

Följande sats skapar en vy som heter v_albums som innehåller albumtitel och albumets längd i minuter:

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)

I det här exemplet specificerade vi nya kolumner för vyn AlbumTitle för albums.title kolumn och minuter för uttrycket SUM(milliseconds) / 60000

Den här frågan returnerar data från v_albums visa:

SELECT * FROM v_albums;Code language: SQL (Structured Query Language) (sql)

I den här handledningen har du lärt dig om databasvyer och hur du använder CREATE VIEW för att skapa nya vyer i SQLite.


  1. PostgreSQL långsam på ett stort bord med arrayer och massor av uppdateringar

  2. Hur man läser versionsnummer från en databasfil i Android som placeras i tillgångsmappen

  3. hur man kontrollerar att databasen är konsekvent efter ofullständig återställning

  4. Kör Oracle Forms som fristående utan webbläsare