Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 34 di 41
  • livello principiante
Indice lezioni

Operazioni sulle viste

Come modificare, cancellare una vista ed operare con i dati
Come modificare, cancellare una vista ed operare con i dati
Link copiato negli appunti

Cancellazione di una vista

Per eliminare una vista usiamo lo statement DROP VIEW.

Sintassi di DROP VIEW

DROP VIEW <nome vista>;

Quando viene eseguita un'operazione di questo genere Oracle automaticamente, oltre a cancellare la definizione della vista dal dizionario dei dati, procede con l'eliminazione degli eventuali privilegi sulla vista concessi ad altri utenti.

Modifica della definizione di una vista

Per modificare una vista possiamo cancellarla e ricrearla aggiungendo la modifica oppure possiamo "sovrascriverla". La prima soluzione ha però come conseguenza la cancellazione di tutti i privilegi eventualmente concessi ad altri utenti per l'utilizzo della vista, mentre con la seconda soluzione i privilegi sarebbero mantenuti.

Per sostituire la definizione di una vista usiamo quindi la clausola OR REPLACE del comando CREATE VIEW. Se la vista esiste nello schema corrente sarà modificata, se invece non esistesse Oracle ne creerebbe una nuova.

Ad esempio immaginiamo voler modificare la definizione della vista "my_view", per includere la colonna "indirizzo".

SQL> CREATE OR REPLACE VIEW my_view AS
  2  SELECT nominativo, data_assunz, paese_residenza, indirizzo
  3  FROM impiegati;

Interrogazione di una vista

Una vista viene interrogata con lo statement SELECT, così come accade per le tabelle. Ad esempio interroghiamo le viste create precedentemente.

SQL> SELECT * FROM my_view;
SQL> SELECT * FROM new_employees;
SQL> SELECT * FROM readonly_view;
Risultato delle query

Come volevasi dimostrare è più semplice eseguire una vista che una query. Inoltre, l'utente a cui è affidata l'esecuzione della vista può non preoccuparsi affatto di conoscere la definizione della vista, ne le tabelle su cui è basata.

Operazioni DML con le viste

Le viste consentono l'esecuzione delle classiche operazioni di DML, ma con alcune limitazioni. Queste operazioni sono impossibili se ad esempio la definizione della vista include:

  • la clausola DISTINCT;
  • la clausola GROUP BY;
  • query nidificate.

Quelle appena elencate sono solamente alcune fra le limitazioni possibili. Bisogna tener presente che le operazioni che si eseguono sulle viste vengono in realtà effettuate sulle tabelle di base.

Ad esempio creiamo una nuova vista denominata "fatherview" e inseriamo una nuova riga nella tabella base, Padre, usufruendo della vista appena creata.

SQL> CREATE VIEW fatherview AS SELECT * FROM padre;

SQL> INSERT INTO fatherview VALUES ((SELECT MAX (idpadre) + 1 FROM padre),
  2  'Petrella Walter',
  3  TO_DATE ('16-08-1963', 'DD-MM-YYYY'));
  
SQL> SELECT * FROM fatherview ORDER BY 1;  
Risultato della query

Ti consigliamo anche