Una vista è una tabella virtuale ottenuta a partire da una query SQL. 
                        Trutturalmente è simile ad una tabella in quanto contiene righe e colonne.
                        In una vista è possibile utilizzare quasi tutti gli operatori SQL come le join, le where, o le funzioni.
Prediamo in esame due tabelle che utilizzeremo per gli esempi:
Tabella Società
| Societa | Codice | 
|---|---|
| Microsoft | 1 | 
| Oracle | 2 | 
| Sun | 3 | 
| HP | 4 | 
| MorpheusWeb | 5 | 
Tabella Ordini
| NumeroOrdine | Importo | CodiceSocieta | 
|---|---|---|
| 1001 | 100 | 1 | 
| 1002 | 200 | 2 | 
| 1003 | 50 | 3 | 
| 1004 | 300 | 4 | 
| 1005 | 80 | 1 | 
| 1006 | 120 | 2 | 
Consente di creare una vista sulla base di una serie di istruzioni SQL
CREATE VIEW Nome_vista AS 
Istruzioni_di_Select 
CREATE VIEW OrdiniSocieta
SELECT
	Societa, NumeroOrdine
FROM Societa
INNER JOIN Ordini
	ON Societa.Codice = Ordini.CodiceSocietaLa query seguente
SELECT * FROM OrdiniSocietaRestituirà il seguente risultato
| Societa | NumeroOrdine | 
|---|---|
| Microsoft | 1001 | 
| Oracle | 1002 | 
| Sun | 1003 | 
| HP | 1004 | 
| Microsoft | 1005 | 
| Oracle | 1006 | 
Consente di modificare una vista preesistente
ALTER VIEW Nome_vista AS 
Istruzioni_di_SelectALTER VIEW OrdiniSocieta
SELECT
	Codice, Societa, NumeroOrdine
FROM Societa
INNER JOIN Ordini
	ON Societa.Codice = Ordini.CodiceSocietaLa query seguente
SELECT * FROM OrdiniSocietaRestituirà il seguente risultato
| Codice | Societa | NumeroOrdine | 
|---|---|---|
| 1 | Microsoft | 1001 | 
| 2 | Oracle | 1002 | 
| 3 | Sun | 1003 | 
| 4 | HP | 1004 | 
| 1 | Microsoft | 1005 | 
| 2 | Oracle | 1006 | 
Elimina una vista esistente dal database (non elimina ne le tabelle, ne i dati contenuti in esse)
DROP VIEW Nome_vista DROP VIEW OrdiniSocietaIn SQL Server è possibile creare delle viste indicizzate tramite l'opzione WITH SCHEMABINDING
L'operazione è consigliabile quando le viste contengono un numero elevato di join ed estraggono molti dati che poi dovranno essere filtrati
CREATE VIEW OrdiniSocieta WITH SCHEMABINDING
SELECT
	Codice, Societa, NumeroOrdine
FROM Societa
INNER JOIN Ordini
	ON Societa.Codice = Ordini.CodiceSocieta      
GO
CREATE INDEX ix_OrdiniSocieta ON OrdiniSocieta (Codice) INCLUDE (NumeroOrdine)