Documente Academic
Documente Profesional
Documente Cultură
Obiective:
Dupa parcurgerea acestei lectii, ar trebui sa puteti face urmatoarele :
* Sa descrieti o vizualizare (imagine)
* Sa creati o vizualizare
* Sa extrageti date dintr-o vizualizare
* Sa schimbati structura unei vizualizari
* Sa inserati, sa actualizati si sa stergeti date dintr-o
vizualizare
* Sa stergeti o imagine
Scopul lectiei
In aceasta lectie, veti invata sa creati si sa utilizati o imagine. Deasemenea
veti invata sa interogati dictionarul de date pentru a obtine informatii despre
vizualizari.
Obiecte baza de date
Obiect
Tabel
Vizualizare
Secventa
Index
Synonym
Descriere
Unitate de memorare; compus din linii si coloane
Reprezentari logice ale datelor din unul sau mai multe tabele
Genereaza valorile cheii primare
Imbunatateste performantele unor interogari
Un alt nume pentru interogari
Ce este o imagine?
Tabelul EMP
EMPNO
7839
7782
7934
7900
7521
ENAME
KING
CLARK
MILLER
JAMES
WARD
JOB
PRESIDENT
MANAGER
CLERK
CLERK
SALESMAN
SAL
COMM
950
1250
0
500
Se pot face reprezentari logice sau combinatii de date prin crearea vizualizarilor din
tabele. O imagine este un tabel virtual bazat pe un alt tabel sau pe o alta imagine. O
imagine nu contine date proprii dar este ca o fereastra prin intermediul careia datele
din tabele pot fi vizualizate sau schimbate. Tabelele pe baza carora sunt create
Plus
Exemplul anterior creat contine numarul angajatului, numele si functia sa pentru toti
angajatii din departamentul 10.
Descrierea structurii imaginii este urmatoarea :
Name
Null?
Type
EMPNO
ENAME
JOB
NOT NULL
NUMBER (4)
VARCHAR2 (10)
VARCHAR2 ( 9)
NAME
7698 BLAKE
7654 MARTIN
7499 ALLEN
SALARY
2850
1250
1600
7844 TURNER
7900 JAMES
7521 WARD
1500
950
1250
Datele pot fi extrase din vizualizari la fel ca si din tabele. Deasemenea poate fi afisat
intregul continut al vizualizarii sau numai liniile si coloanele specificate.
Interogarea unei vizualizari
SQL *Plus
SELECT *
From empvu;
---------->
USER_VIEWS
EMPVU10
SELECT
empno,ename,job
FROM emp
WHERE
deptno=10;
7839 KING
PRESIDENT
7782 CLARK MANAGER
7934 MILLER CLERK
<---------EMP
FROM
emp
WHERE
deptno=10;
* Alias-urile coloanelor in clauza CREATE VIEW sunt listate in aceeasi
ordine ca si coloanele din subinterogare.
Optiunea OR REPLACE permite crearea unei vizualizari chiar daca mai exista una
cu acelasi nume, astfel ilocuindu-se vechea versiune cu cea noua. Asta inseamna ca
imaginea poate fi alterata (schimbata) fara stergerea, recrearea si redarea
privilegiilor obiectului.
Observatie: Cand dati nume alternative coloanelor (alias-uri) in clauza CREATE
VIEW, amintitiva ca alias-urile sunt listate in aceeasi ordine ca si coloanele din
subinterogare.
Crearea unei imagini complexe
Creati o vizualizare complexa care sa contina un grup de functii pentru a afisa
valorile din doua tabele.
CREATE VIEW
dept_sum_vu
(name, minsal, maxsal, avgsal)
AS SELECT d.dname, MIN(e.sal), MAX(e.sal), AVG(e.sal)
FROM
emp e, dept d
WHERE
e.deptno=d.deptno
GROUP BY
d.dname;
Exemplul anterior creaza o imagine complexa care contine numele
departamentului, salarul minim, salarul maxim si salarul mediu pentru fiecare
departament. De retinut ca alias-urile au fost specificate pentru vizualizare. Acest
lucru este o necesitate daca vreo coloana a imaginii este derivata dintr-o functie sau
expresie.
Structura vizualizarii poate fi vazuta cu ajutorul comenzii SQL* Plus DESCRIBE.
Continutul imaginii poate fi afisat cu o secventa SELECT.
SELECT *
FROM dept_sum_vu;
NAME
ACCOUNTING
RESEARCH
SALES
MINSAL
MAXSAL
1300
800
950
5000
3000
2850
AVGSAL
2916.6667
2175
1566.6667
empvu20_ck;
empvu20
deptno=10
empno=7788;
empvu10
WHERE
employee_number=7782;
Pe ecran va apare:
DELETE FROM empvu10
*
ERROR at line 1:
ORA_01752: Cannot delete from view without exactly one key-preserved table
Stergerea unei vizualizari
O vizualizare poate fi stearsa fara a pierde datele deoarece imaginea are la baza un
tabel asociat.
DROP VIEW view;
In sintaxa view semnifica numele vizualizarii.
Ex : DROP VIEW empvu10;
Utilizati comanda DROP VIEW pentru a sterge o imagine. Aceasta comanda
elimina definitia imaginii din baza de date. Datele nu sunt afectate deoarece sunt
stocate in tabelele de unde a derivat fiecare imagine. Imaginile sau alte aplicatii
bazate pe o imagine stearsa devin invalide. Doar creatorul imaginii sau un user cu
privilegiul DROP ANY VIEW poate sterge o vizualizare.
Exercitii practice
*Crearea unei imagini simple
*Crearea unei imagini complexe
*Crearea unei imagini cu verificarea constangerii
*Incercarea de modificare a datei intr-o vizualizare
*Afisarea definitiilor de vizualizari
*{tergerea imaginilor
In acest capitol de exercitii veti crea imagini simple si complexe si veti
incerca sa executati operatii DML pe vizualizari.
1. Creati o vizualizare EMP_VU care sa contina numarul angajatului, numele sau si
numarul departamentului avand asociat tabelul EMP. Schimbati denumirea pentru
numele angajatului cu EMPLOYEE.
2. Afisati continutul vizualizarii EMP_VU.
10