Le viste (view). Seconda parte.
Come modificare i dati di una tabella attraverso una vista.
Tramite una vista e' possibile anche inserire, cancellare e modificare i dati di una tavola, con delle limitazioni, che andremo ad analizzare.
La prima e fondamentale e' che la vista deve basarsi su di una sola tabella.
Per quanto riguarda la cancellazione di record la select non deve contenere:
- Funzioni di gruppo
- Clausola GROUP BY
- Comando DISTINCT
- Riferimenti alla colonna ROWNUM
- Subquery
Per la modifica di record, valgono le stesse limitazioni della cancellazione, inoltre:
- Non devono esserci colonne definite da espressioni
Nel caso dell'inserimento valgono le stesse limitazioni precedenti, inoltre:
- Le colonne della tabella definite not null, devono essere tutte presenti nella select
Nella creazione di una vista e' possibile utilizzare la clausola
WITH CHECK OPTIONS, in questo caso gli inserimenti e le modifiche effettuate attraverso la vista saranno filtrati dalla condizione di where della stessa.
Ad esempio supponiamo di aver creato una vista che estrae tutti i dati dei dipendenti la cui eta' e' minore di 50. Attraverso tale vista sara' possibile inserire o modificare solo i record relativi agli impiegati la cui eta' e' minore di 50.
E' possibile utilizzare una vista definendola direttamente nella select, questo puo' essere utile se, ad esempio, la vista vi serve solo in quella particolare select:
Es:
SELECT t.a,t.b,v.c
FROM tabella t,(select ... from ... where ...) v
where ...;
In questo modo si evita di creare un oggetto che viene utilizzato in una sola istruzione.
Concludo ricordando che non e' possibile creare due viste con lo stesso nome, mentre e' probabile modificare una vista esistente, ricreandola con l'istruzione
CREATE OR REPLACE VIEW, in questo caso se la vista esiste gia' viene modificata se non esiste viene creata.