venerdì, settembre 19, 2008

Basi di dati: SQL, Viste

Sono delle "tabelle virtuali" con un nome

Non é memorizzata: é una selezione di una tabella

Posso creare delle "viste materializzate": ovvero copio delle viste in una tabella, ma poi devo gestirne l'allineamento

CREATE VIEW

CREATE VIEW
NomeVista (Campo1, Campo2) AS SELECT ... [WITH [LOCAL|CASCADED] CHECK OPTION]

Può servire anche per limitare l'accesso a certi dati da parte di certi utenti (permessi solo sulla vista e non sulla tabella)

Una View può accedere ad un'altra View in cascata

Se non metto l'elenco degli attributi verrà usato il nome posizionale degli attributi della SELECT

AGGIORNABILITA':

In View con JOIN potrei avere Update problematici

In genere posso aggiornare solo viste definite su una sola tabella (e dovrebbe essere specificata anche la chiave primaria)

Alcune implementazioni di Database potrebbero essere più permissivi

La CHECK OPTION:

Se specificata posso aggiornare la vista solo se le righe aggiornate faranno ancora parte della vista

LOCAL: Controlla solo per la vista attuale

CASCADED (default): Controlla anche per le eventuali viste che compongono la vista corrente

Nessun commento: