SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite Crea vista

Riepilogo :in questo tutorial imparerai come usare SQLite CREATE VIEW istruzione per creare una nuova vista nel database.

Cos'è una vista

Nella teoria del database, una vista è un set di risultati di una query archiviata. Una vista è il modo per comprimere una query in un oggetto denominato archiviato nel database.

È possibile accedere ai dati delle tabelle sottostanti tramite una vista. Le tabelle a cui fa riferimento la query nella definizione della vista sono chiamate tabelle di base.

Una vista è utile in alcuni casi:

  • In primo luogo, le viste forniscono un livello di astrazione sulle tabelle. Puoi aggiungere e rimuovere le colonne nella vista senza toccare lo schema delle tabelle sottostanti.
  • In secondo luogo, puoi utilizzare le viste per incapsulare query complesse con join per semplificare l'accesso ai dati.

La vista SQLite è di sola lettura. Significa che non puoi usare INSERT , DELETE e UPDATE istruzioni per aggiornare i dati nelle tabelle di base tramite la vista.

SQLite CREATE VIEW dichiarazione

Per creare una vista, usa CREATE VIEW dichiarazione come segue:

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

Innanzitutto, specifica un nome per la vista. Il IF NOT EXISTS l'opzione crea una nuova vista solo se non esiste. Se la vista esiste già, non fa nulla.

In secondo luogo, usa il TEMP o TEMPORARY opzione se si desidera che la vista sia visibile solo nella connessione al database corrente. La vista è chiamata vista temporanea e SQLite rimuove automaticamente la vista temporanea ogni volta che la connessione al database viene chiusa.

Terzo, specifica un SELECT dichiarazione per la vista. Per impostazione predefinita, le colonne della vista derivano dal set di risultati di SELECT dichiarazione. Tuttavia, puoi assegnare i nomi delle colonne della vista diversi dal nome della colonna della tabella

SQLite CREATE VIEW esempi

Facciamo alcuni esempi di creazione di una nuova vista utilizzando CREATE VIEW dichiarazione.

1) Creazione di una vista per semplificare una query complessa

La query seguente ottiene i dati dalle tracks , albums , media_types e genres tabelle nel database di esempio utilizzando la clausola inner join.

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)

Provalo

Per creare una vista basata su questa query, utilizza la seguente istruzione:

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)

Provalo

D'ora in poi, puoi utilizzare la seguente query semplice invece di quella complessa sopra.

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

Provalo

2) Creazione di una vista con nomi di colonna personalizzati

La seguente istruzione crea una vista denominata v_albums che contiene il titolo dell'album e la durata dell'album in minuti:

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 questo esempio, abbiamo specificato nuove colonne per la vista AlbumTitle per albums.title colonna e Minuti per l'espressione SUM(milliseconds) / 60000

Questa query restituisce i dati da v_albums visualizza:

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

In questo tutorial, hai imparato le viste del database e come utilizzare CREATE VIEW istruzione per creare nuove viste in SQLite.