Samenvatting :in deze tutorial leer je hoe je de SQLite CREATE VIEW
. gebruikt statement om een nieuwe weergave in de database te maken.
Wat is een weergave
In databasetheorie is een view een resultaatset van een opgeslagen query. Een view is de manier om een query in te pakken in een benoemd object dat is opgeslagen in de database.
Via een view heb je toegang tot de gegevens van de onderliggende tabellen. De tabellen waarnaar de query in de weergavedefinitie verwijst, worden basistabellen genoemd.
Een weergave is in sommige gevallen handig:
- Ten eerste bieden weergaven een abstractielaag over tabellen. U kunt de kolommen in de weergave toevoegen en verwijderen zonder het schema van de onderliggende tabellen aan te raken.
- Ten tweede kunt u weergaven gebruiken om complexe query's in te kapselen met joins om de gegevenstoegang te vereenvoudigen.
SQLite-weergave is alleen-lezen. Dit betekent dat u INSERT
. niet kunt gebruiken , DELETE
, en UPDATE
instructies om gegevens in de basistabellen bij te werken via de weergave.
SQLite CREATE VIEW
verklaring
Om een weergave te maken, gebruik je de CREATE VIEW
verklaring als volgt:
CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS
select-statement;
Code language: SQL (Structured Query Language) (sql)
Geef eerst een naam op voor de weergave. De IF NOT EXISTS
optie maakt alleen een nieuwe weergave aan als deze niet bestaat. Als de weergave al bestaat, doet deze niets.
Ten tweede, gebruik de TEMP
of TEMPORARY
optie als u wilt dat de weergave alleen zichtbaar is in de huidige databaseverbinding. De weergave wordt een tijdelijke weergave genoemd en SQLite verwijdert automatisch de tijdelijke weergave wanneer de databaseverbinding wordt verbroken.
Ten derde, specificeer een SELECT
verklaring voor het uitzicht. Standaard zijn de kolommen van de weergave afgeleid van de resultatenset van de SELECT
uitspraak. U kunt echter de namen van de weergavekolommen toewijzen die verschillen van de kolomnaam van de tabel
SQLite CREATE VIEW
voorbeelden
Laten we enkele voorbeelden nemen van het maken van een nieuwe weergave met behulp van de CREATE VIEW
verklaring.
1) Een weergave maken om een complexe zoekopdracht te vereenvoudigen
De volgende query haalt gegevens op van de tracks
, albums
, media_types
en genres
tabellen in de voorbeelddatabase met behulp van de inner join-clausule.
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)
Probeer het
Om een weergave te maken op basis van deze zoekopdracht, gebruikt u de volgende instructie:
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)
Probeer het
Vanaf nu kunt u de volgende eenvoudige zoekopdracht gebruiken in plaats van de complexe hierboven.
SELECT * FROM v_tracks;
Code language: SQL (Structured Query Language) (sql)
Probeer het
2) Een weergave maken met aangepaste kolomnamen
De volgende instructie maakt een weergave met de naam v_albums
die de albumtitel en de lengte van het album in minuten bevat:
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 dit voorbeeld hebben we nieuwe kolommen gespecificeerd voor de weergave AlbumTitle
voor de albums.title
kolom en Minuten voor de uitdrukking SUM(milliseconds) / 60000
Deze zoekopdracht retourneert gegevens uit de v_albums
bekijken:
SELECT * FROM v_albums;
Code language: SQL (Structured Query Language) (sql)
In deze zelfstudie hebt u geleerd over databaseweergaven en het gebruik van de CREATE VIEW
statement om nieuwe views in SQLite te creëren.