In SQL Server è possibile salvare una query come vista. Le visualizzazioni sono vantaggiose per molti motivi, tra cui sicurezza, usabilità e praticità.
In SQL Server, una vista è una tabella virtuale il cui contenuto è definito da una query. È fondamentalmente una query pre-scritta che viene archiviata nel database.
Una vista consiste in un SELECT
istruzione e quando esegui una query sulla vista, ne vedi i risultati come faresti quando apri una tabella. Le viste sono denominate tabelle virtuali perché possono riunire i dati di più tabelle, nonché aggregare i dati e presentarli come se fosse un'unica tabella.
Vantaggi delle viste
Una vista può essere utile quando sono presenti più utenti con diversi livelli di accesso, che devono tutti visualizzare parti dei dati nel database (ma non necessariamente tutti i dati). Le visualizzazioni possono eseguire le seguenti operazioni:
- Limita l'accesso a righe specifiche in una tabella
- Limita l'accesso a colonne specifiche in una tabella
- Unisci colonne di più tabelle e presentale come se facessero parte di un'unica tabella
- Presenta informazioni aggregate (come i risultati di
COUNT()
funzione)
Come creare una vista
Per creare una vista, usa CREATE VIEW
istruzione, seguita da SELECT
dichiarazione.
CREATE VIEW ViewName AS SELECT ...
Questo è tutto ciò che c'è da fare. Quando esegui tale istruzione, la vista viene salvata nel database
Esempio
Ecco un esempio di creazione di una vista e quindi di selezione dei dati da quella vista.
-
Crea la vista
Esegui la seguente istruzione sul database Music che abbiamo creato durante questo tutorial.
Questo esempio crea una vista denominata RockAlbums. Seleziona tutti gli album a cui è stato assegnato un Genere di "Rock".
CREATE VIEW RockAlbums AS SELECT AlbumName, ArtistName FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId INNER JOIN Genres ON Albums.GenreId = Genres.GenreId WHERE Genres.Genre = 'Rock';
-
Visualizza la vista
Espandi le Viste nodo nel database applicabile per vedere la vista appena creata. Puoi anche espandere i nodi della vista per vedere le colonne incluse nella sua definizione.
-
Esegui la vista
Ora che la vista è stata creata, puoi eseguirla utilizzando un
SELECT
dichiarazione. Puoi selezionare tutto, oppure puoi selezionare colonne specifiche, restringere ulteriormente i risultati con unWHERE
clausola, ecc.SELECT * FROM RockAlbums;
Modificare una vista
Puoi modificare la tua visualizzazione con ALTER VIEW
dichiarazione.
Tutto quello che devi fare è fornire la nuova definizione di vista che desideri utilizzare. Quindi è quasi come creare una nuova vista con CREATE VIEW
istruzione tranne che sta alterando una esistente con ALTER VIEW
dichiarazione.
Ecco un esempio.
-
Modifica la vista
Esegui la seguente istruzione. Questo aggiunge una nuova colonna alla selezione della vista (il
ReleaseDate
colonna).ALTER VIEW RockAlbums AS SELECT AlbumName, ArtistName, ReleaseDate FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId INNER JOIN Genres ON Albums.GenreId = Genres.GenreId WHERE Genres.Genre = 'Rock';
-
Esegui la vista
Ora che abbiamo aggiunto il
ReleaseDate
colonna alla vista, possiamo usarla nelle nostre query SQL rispetto alla vista.Ad esempio, possiamo selezionare tutti gli album la cui data di uscita è successiva a una certa data.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';