Sunteți pe pagina 1din 2

Introduction to Oracle: SQL and PL/SQL, Instructor Guide, Volumen 1

Práctica 12: Creando Vistas


--------------------------------------------------------------------

Ejercicio 1:
Cree una vista llamada EMP_VU basada en el número de empleado, el nombre d
el empleado, y el número de departamento
desde la tabla EMP. Cambie el encabezado para el nombre de emple
ado a EMPLOYEE.
SQL> CREATE VIEW EMP_VU
( empno, EMPLOYEE, deptno)
AS SELECT empno, ename, deptno
FROM EMP;

Ejercicio 2:
Muestre el contenido de la vista EMP_VU.
SQL> SELECT *
FROM EMP_VU;

Ejercicio 3:
Seleccione el nombre y el texto de la vista desde la tabla USER_VIEWS de
l Diccionario de Datos.
SQL> COLUMN VIEW_NAME FORMAT A30
SQL> COLUMN TEXT FORMAT A50
SQL> SELECT VIEW_NAME, TEXT
FROM USER_VIEWS
WHERE VIEW_NAME = 'EMP_VU';

Ejercicio 4: Usando la vista EMP_VU ingrese una consulta que muestre todos lo
s nombres de empleados y números de departamentos.
SQL> SELECT EMPLOYEE, DEPTNO
FROM EMP_VU;
Ejercicio 5: Cree una vista nombrándola DEPT20 que contenga el número de empleado
, el nombre de empleado, y el número de departamento
para todos los empleados del departamento 20. Etiquete las colum
nas de la vista EMPLOYEE_ID, EMPLOYEE, y DEPARTMENT_ID.
No permita que un empleado sea reasignado a otro departamento po
r medio de la vista.
SQL> CREATE VIEW DEPT20
( EMPLOYEE_ID, EMPLOYEE, DEPARTMENT_ID )
AS SELECT empno, ename, deptno
FROM EMP
WHERE deptno = 20
WITH CHECK OPTION CONSTRAINT DEPT20_CK;
Ejercicio 6: Muestre la estructura y el contenido del la vista DEPT20.
SQL> DESC DEPT20
SQL> SELECT *
FROM DEPT20;
Ejercicio 7: Intente reasignar al empleado Smith en el departamento 30.
Ayuda: El número de empleado de Smith es 7863 (en mi base de datos
).
SQL> UPDATE DEPT20
SET DEPARTMENT_ID = 30
WHERE EMPLOYEE_ID = 7863;
Resultado:
----------
"
ORA-01402: Violación de cláusula WHERE en la vista WITH CHECK OPTION
"
Si tiene tiempo, complete el ejercicio siguiente:
Ejercicio 8: Cree una vista llamada SALARY_VU basada en el nombre del emplead
o, el nombre del departamento, el salario del empleado
y el grado de salario del empleado; para todos los empleados. Et
iquete las columnas de la vista EMPLOYEE, DEPARTMENT, SALARY, y GRADE respectiva
mente.
SQL> CREATE VIEW SALARY_VU
( EMPLOYEE, DEPARTMENT, SALARY, GRADE )
AS SELECT e.ename, d.dname, e.sal, s.grade
FROM EMP e, DEPT d, SALGRADE s
WHERE e.deptno = d.deptno
AND e.sal BETWEEN s.losal AND s.hisal;
SQL> SELECT *
FROM SALARY_VU;

S-ar putea să vă placă și