5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 60

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
Quindi , in pratica , la creazione di una vista ci permette di imporre delle restrizioni sull ’ accesso ai dati e di limitare in questo modo l ’ azione delle interrogazioni soltanto a specifiche colonne di una tabella ; lo stesso discorso può essere fatto per quanto riguarda le possibilità di accesso ai dati .
N . B . Anche sulle viste inoltre è possibile utilizzare l ’ istruzione GRANT .
Quindi è possibile creare utenti con diritti di accesso specifici su tabelle di tipo vista aumentando di fatto il livello di sicurezza nell ’ accesso ai dati .
Per creare una vista si utilizza l ’ istruzione SQL CREATE VIEW la cui sintassi è la seguente : CREATE VIEW < NomeTabellaVista > [< ListaColonne >] AS < QuerySelect > [ WITH CHECK OPTION ] ;
Dove : - < NomeTabellaVista > è il nome che desideriamo assegnare alla vista ;
- < ListaColonne > contiene l ’ elenco delle colonne che parteciperanno alla creazione della vista ; N . B . questa voce deve comprendere lo stesso numero di colonne che viene specificato nella parte relativa a < QuerySelect >; nel caso in cui la voce < ListaColonne > dovesse mancare CREATE VIEW farà riferimento a quelle indicate tramite < QuerySelect >;
- < QuerySelect > è una normale query formulata con l ’ istruzione SELECT che definisce la vista ;
- WITH CHECK OPTION è una clausola che viene applicata ai comandi per la modifica dei dati come INSERT e UPDATE per rispettare la definizione della vista apportata tramite < QuerySelect > ( siano , cioè , conformi all ' eventuale clausola WHERE specificata in sede di definizione della Vista ).
Quando si crea una vista è necessario tenere conto di alcune restrizioni :
• È possibile creare viste soltanto nel database corrente .
• Il nome della vista deve seguire le regole imposte dall ’ IDENTIFIER del datasource .
• Il nome della vista non deve essere lo stesso della tabella di partenza .
• È possibile creare una vista solo se la tabella di partenza permette l ’ esecuzione di query SELECT .
• Non è possibile definire una vista utilizzando il comando SELECT INTO .
• Non è possibile definire un trigger in una vista .
• Non è possibile definire un indice all ’ interno di una vista .
• Non è possibile associare CREATE VIEW ad altri comandi SQL nella stessa istruzione .
Le tabelle virtuali possono essere alterate esattamente come quelle fisiche , a questo scopo esiste il comando ALTER VIEW che modifica la definizione di una vista .
Per modificare una vista si utilizza l ’ istruzione ALTER VIEW la cui sintassi è la seguente : ALTER VIEW < NomeTabellaVista > [< ListaColonne >] AS < QuerySelect > [ WITH CHECK OPTION ] ;
In questo caso non vi è nulla da segnalare di particolare , la sintassi per l ’ alterazione delle tabelle si differenzia da quella di creazione essenzialmente per il comando SQL utilizzato che in questo caso è ALTER VIEW .
Per eliminare una vista si utilizza l ’ istruzione SQL DROP VIEW la cui sintassi è la seguente : DROP VIEW < NomeTabellaVista > ;
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 60