Views (MySQL 5.0.1/5.0.2)

Le Views permettono di accedere ai record risultanti di una query su un insieme di tabelle come se questi fossero mantenuti in una singola tabella offrendo in questo modo la possibilità di limitare l'accesso ai soli campi definiti come appartenenti alla view.

La modalità per creare una view è del tipo
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW nome_della_view [(lista_di_campi)]
AS istruzione_di_select
[WITH [CASCADED | LOCAL] CHECK OPTION]

Dato che le tabelle e le view condividono lo stesso namespace non è possibile creare all'interno dello stesso database una tabella e una view con lo stesso nome. Inoltre così come avviene per le tabelle regolari anche in una view non è possibile specificare due colonne con lo stesso nome, per default vengono considerati i nomi delle colonne cosi come sono estratti dal costrutto di selezione, in alternativa è possibile indicare i nomi dei campi tramite il parametro opzionale lista_di_campi che dovrà contenere lo stesso esatto numero di campi estratti dalla query di creazione.
E' possibile, all'interno della query di creazione della view, riferirsi a tabelle di altri database così come utilizzare operatori, funzioni e costanti.
Mentre i vincoli legati alla creazione di una view sono: non è possibile utilizzare una subquery nella clausola della istruzione_di_select, non è possibile fare riferimento a tabelle temporanee e infine le tabelle e le view a cui ci si riferisce devono esistere almeno all'atto di creazione della view, successivamente è possibile droppare una tabella (o una view) anche se questa è stata utilizzata in una view.
L'opzione WITH CHECK OPTION, implementata a partire dalla versione 5.0.2 indica che sarà possibile inserire o modificare i valori solamente dei record per cui la clausola WHERE nella istruzione_di_select è vera, CASCADED (il default) e LOCAL indicano se attuare il controllo su tutte le view sottostanti oppure solo localmente alla particolare view.

Privacy Policy