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;