Sunteți pe pagina 1din 2

-- EXERCITII 11 -- 1. Sa se creeze o vedere cu numele EMP_VE care sa contina numarul angajatului,numel e angajatului,numarul si numele departamentului in care lucreaza.

Sa se schimbe in vederea creata antetul coloanei ENAME la EMPLOYEE. CREATE OR REPLACE VIEW EMP_VE AS SELECT a.empno, a.ename AS EMPLOYEE, b.deptno, b.dname FROM emp a, dept b WHERE a.deptno = b.deptno; -- 2. Sa se afiseze datele existente in EMP_VE. SELECT * FROM EMP_VE; -- 3. Folosindu-se de aceasta vedere sa se afiseze numarul de angajati din fiecare dep artament. SELECT COUNT(employee), DEPTNO FROM EMP_VE GROUP BY DEPTNO; -- 4. Sa se afiseze coloanele VIEW_NAME,TEXT din tabela USER_VIEWS din dictionarul de date. SELECT VIEW_NAME, TEXT FROM USER_VIEWS; -- 5. Sa se creeze o vedere cu numele DEPT20 care sa contina datele despre angajatii d in departamentul 20.Sa se redenumeasca coloanele corespunzatoare EMPLOYEE_ID,EMPLOYEE si DEPARTAMENT_ID. Sa nu se permite transferul angajatilor de la un departament la altul prin acea sta vedere. CREATE OR REPLACE VIEW DEPT20 (EMPLOYEE_ID, EMPLOYEE, DEPARTAMENT_ID) AS SELECT empno, ename, deptno FROM emp WHERE deptno = 20 WITH CHECK OPTION CONSTRAINT c_dept20_deptno; -- 6. Sa se afiseze structura si continutul vederii DEPT20. DESCRIBE DEPT20; SELECT * FROM dept20; -- 7. Sa se incerce modificarea numarului departamentului angajatului Smith. UPDATE dept20 SET departament_id = 33 WHERE employee = 'SMITH'; -- 8. Sa se creeze vederea SALARY_VR care sa contina numele angajatului,salariul lui, numele departamentului si gradul de salarizare avand denumirile coloanelor Emplo yee,Department,Salary si Grade. CREATE OR REPLACE VIEW SALARY_VE (EMPLOYEE, DEPARTAMENT, SALARY, GRADE) AS SELECT a.ename, b.dname, a.sal, c.grade

FROM emp a, dept b, salgrade c WHERE a.deptno = b.deptno AND a.sal BETWEEN c.losal AND c.hisal;