sql >> Databáze >  >> RDS >> SQLite

Vytvořit zobrazení SQLite

Shrnutí :v tomto tutoriálu se naučíte používat SQLite CREATE VIEW příkaz k vytvoření nového pohledu v databázi.

Co je zobrazení

V teorii databází je pohled výslednou sadou uloženého dotazu. Pohled je způsob, jak zabalit dotaz do pojmenovaného objektu uloženého v databázi.

K datům podkladových tabulek můžete přistupovat prostřednictvím pohledu. Tabulky, na které dotaz v definici pohledu odkazuje, se nazývají základní tabulky.

Zobrazení je v některých případech užitečné:

  • Za prvé, pohledy poskytují nad tabulkami vrstvu abstrakce. Sloupce v zobrazení můžete přidávat a odebírat, aniž byste se dotkli schématu podkladových tabulek.
  • Zadruhé můžete použít zobrazení k zapouzdření složitých dotazů do spojení, abyste zjednodušili přístup k datům.

Zobrazení SQLite je pouze pro čtení. To znamená, že nemůžete použít INSERT , DELETE a UPDATE příkazy k aktualizaci dat v základních tabulkách prostřednictvím pohledu.

SQLite CREATE VIEW prohlášení

Chcete-li vytvořit pohled, použijte CREATE VIEW prohlášení takto:

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

Nejprve zadejte název pohledu. IF NOT EXISTS možnost vytvoří nový pohled pouze v případě, že neexistuje. Pokud pohled již existuje, nedělá nic.

Za druhé, použijte TEMP nebo TEMPORARY Pokud chcete, aby byl pohled viditelný pouze v aktuálním připojení k databázi. Pohled se nazývá dočasný pohled a SQLite automaticky odebere dočasný pohled při každém uzavření databázového připojení.

Za třetí, zadejte SELECT prohlášení pro pohled. Ve výchozím nastavení jsou sloupce pohledu odvozeny od sady výsledků SELECT prohlášení. Můžete však přiřadit názvy sloupců zobrazení, které se liší od názvu sloupce tabulky

SQLite CREATE VIEW příklady

Podívejme se na několik příkladů vytvoření nového pohledu pomocí CREATE VIEW prohlášení.

1) Vytvoření pohledu pro zjednodušení složitého dotazu

Následující dotaz získává data ze tracks , albums , media_types a genres tabulky ve vzorové databázi pomocí klauzule vnitřního spojení.

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)

Zkuste to

Chcete-li vytvořit pohled založený na tomto dotazu, použijte následující příkaz:

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)

Zkuste to

Od této chvíle můžete místo výše uvedeného složitého dotazu používat následující jednoduchý dotaz.

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

Zkuste to

2) Vytvoření pohledu s vlastními názvy sloupců

Následující příkaz vytvoří pohled s názvem v_albums který obsahuje název alba a délku alba v minutách:

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)

V tomto příkladu jsme zadali nové sloupce pro zobrazení AlbumTitle pro albums.title sloupec a minuty pro výraz SUM(milliseconds) / 60000

Tento dotaz vrací data z v_albums zobrazit:

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

V tomto tutoriálu jste se dozvěděli o zobrazeních databáze a o tom, jak používat CREATE VIEW příkaz k vytvoření nových pohledů v SQLite.


  1. Aktualizace tabulky MySQL na základě jiné hodnoty tabulky

  2. Jak používat Oracle Associative Array v dotazu SQL

  3. Jak pracovat s nástroji na obrazovce v Accessu 2019

  4. Import .csv se sloupcem časového razítka (dd.mm.yyyy hh.mm.ss) pomocí psql \copy