View
View: un tabel logic (deci nu se memorează datele în baza de date) construit cu date din mai multe tabele sau view-uri. Un view se
defineşte cu o instrucţiune Select, iar în baza de date se memorează definirea view-ului, nu datele regăsite de el.
View -urile sunt de două tipuri:
- simple - dacă pentru fiecare înregistrare din view se poate determina unic o singură înregistrare dintr-un singur tabel sursă care a generat-o:
- datele se obţin dintr-un singur tabel, fără clauza DISTINCT, iar sursele sunt coloane (nu expresii)
- la construire nu se fac grupări de înregistrări
Pentru astfel de view-uri se pot folosi instrucţiunile de la gestiunea datelor din tabele.
- complexe - în celelalte cazuri
Gestiune view-uri
Creare/înlocuire:
CREATE [OR REPLACE] [{FORCE | NOFORCE}] VIEW [schema.]numeview
[(alias_coloana [, alias_coloana] ...)]
AS subinterogare
[WITH READ ONLY]
[WITH CHECK OPTION [CONSTRAINT nume_restrictie]]
Clauze:
- OR REPLACE - cere re-crearea (înlocuirea) view-ului dacă el există deja
- NOFORCE - nu crează view-ul dacă cel puţin una din sursele de date nu există
- FORCE - crează view-ul chiar dacă unele din sursele de date nu există
- (alias_coloana [, alias_coloana] ...) - precizează denumirea coloanelor din view. Dacă apare această listă, atunci
numărul de coloane din listă trebuie să fie egal cu numărul de coloane din subinterogare
- WITH READ ONLY - view-ul se poate numai citi, datele din el nu se pot modifica
- WITH CHECK OPTION - specifică o restricţie, care poate primi un nume în dictionar. Aceasta restricţie precizează
că la view nu se pot adăuga sau modifica date dacă ele nu se vor putea selecta cu acest view (nu verifică toate condiţiile
din subinterogare)
Modificare view:
ALTER VIEW [schema.]numeview COMPILE;
ALTER VIEW [schema.]numeview [gestiune_restrictie_atasata];
Eliminare:
DROP VIEW [schema.]numeview
View-uri sistem:
ALL_VIEWS, USER_VIEWS
Ex:
select text from user_views where view_name='INFSTUD'