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.