Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Creare una vista in SQL Server 2017

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.

  1. 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';
  2. 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.

  3. 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 un WHERE 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.

  1. 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';
  2. 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';