SQLite - Visualizzazioni
Una vista non è altro che un'istruzione SQLite archiviata nel database con un nome associato. In realtà è una composizione di una tabella sotto forma di una query SQLite predefinita.
Una vista può contenere tutte le righe di una tabella o righe selezionate da una o più tabelle. È possibile creare una vista da una o più tabelle che dipende dalla query SQLite scritta per creare una vista.
Le viste che sono una specie di tabelle virtuali, consentono agli utenti di:
Struttura i dati in modo che gli utenti o le classi di utenti trovino naturali o intuitivi.
Limita l'accesso ai dati in modo che un utente possa vedere solo dati limitati invece di una tabella completa.
Riepiloga i dati di varie tabelle, che possono essere utilizzati per generare rapporti.
Le viste SQLite sono di sola lettura e quindi potresti non essere in grado di eseguire un'istruzione DELETE, INSERT o UPDATE su una vista. Tuttavia, puoi creare un trigger su una vista che si attiva al tentativo di ELIMINARE, INSERIRE o AGGIORNARE una vista e fare ciò che ti serve nel corpo del trigger.
Creazione di viste
Le viste SQLite vengono create utilizzando il CREATE VIEWdichiarazione. Le viste SQLite possono essere create da una singola tabella, più tabelle o un'altra vista.
Di seguito è riportata la sintassi base di CREATE VIEW.
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
È possibile includere più tabelle nell'istruzione SELECT in modo simile a come vengono utilizzate in una normale query SQL SELECT. Se è presente la parola chiave TEMP o TEMPORARY facoltativa, la visualizzazione verrà creata nel database temporaneo.
Esempio
Considera la tabella AZIENDA con i seguenti record:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
Di seguito è riportato un esempio per creare una vista dalla tabella AZIENDA. Questa visualizzazione verrà utilizzata per avere solo poche colonne dalla tabella AZIENDA.
sqlite> CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM COMPANY;
Ora puoi interrogare COMPANY_VIEW in modo simile a come interroghi una tabella effettiva. Di seguito è riportato un esempio:
sqlite> SELECT * FROM COMPANY_VIEW;
Questo produrrà il seguente risultato.
ID NAME AGE
---------- ---------- ----------
1 Paul 32
2 Allen 25
3 Teddy 23
4 Mark 25
5 David 27
6 Kim 22
7 James 24
Eliminazione delle visualizzazioni
Per eliminare una visualizzazione, utilizzare semplicemente l'istruzione DROP VIEW con l'estensione view_name. La sintassi di base di DROP VIEW è la seguente:
sqlite> DROP VIEW view_name;
Il comando seguente eliminerà la vista COMPANY_VIEW, che abbiamo creato nell'ultima sezione.
sqlite> DROP VIEW COMPANY_VIEW;