sql >> Database >  >> RDS >> SQLite

SQLite-weergave maken

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.


  1. Hoe kan ik gegevens invoegen in een MySQL-database?

  2. Vergelijking van SQL-tekenreeksen, groter dan en kleiner dan operators

  3. De Percona Audit Log-plug-in gebruiken voor databasebeveiliging

  4. Hoe u een gebruiksvriendelijke database voor uw bedrijf kiest