lunes, 6 de agosto de 2007

Creación de una Vista Compleja

Creamos una vista compleja de nombres de departamento, salarios mínimos y salarios máximos por departamento.
Observe que se han especificado nombres alternativos para la vista.
Esto es un requisito si alguna columna de la vista se deriva de una función o una expresión.

Ejemplo:

  • Cree una vista compleja que contenga el nombre de departamento, 2 funciones de grupo para visualizar los valores mínimo y máximo de dos tablas.

CREATE VIEW v_dept_sum_avg
(Nombre, Salario_min, Salario_ max)
AS
SELECT d.dname, MIN(e.sal), MAX(e.sal)
FROM emp e, dept d
WHERE e.deptno = d.deptno
GROUP BY d.dname;

http://liang.armstrong.edu:5560/isqlplus

Veamos su estructura:

Describe v_dept_sum_avg

Ahora veamos los datos:

Select *
From v_dept_sum_avg;

Modificación de una Vista

Con la opción OR REPLACE, se puede crear una vista incluso si ya existe otra con el mismo nombre, sustituyendo así la versión antigua de la vista para su propietario.
Esto significa que la vista se puede modificar sin necesidad de borrar, volver a crear u otorgar, de nuevo, privilegios de objeto.

Ejemplo:

  • Crear una vista de los empleados del departamento 20, que tenga como cabeceras de columnas codigo, nombre, salario y departamento.

CREATE OR REPLACE VIEW v_emp20
(Codigo, Nombre, Salario, Departamento)
AS SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno = 20;

http://liang.armstrong.edu:5560/isqlplus

Veamos los datos:

Select *
From v_emp20;

Debe recordar que:
Cuando asigne alias de columna en la cláusula CREATE VIEW, recuerde que los alias se enumeran en el mismo orden que las columnas de la subconsulta.