Listado completo de tutoriales

84 - Vistas eliminar (drop view)


Para quitar una vista se emplea "drop view":

 drop view NOMBREVISTA;

Eliminamos la vista denominada "vista_empleados":

 drop view vista_empleados;

Si se elimina una tabla a la que hace referencia una vista, la vista no se elimina, hay que eliminarla explícitamente.

Ingresemos el siguiente lote de comandos en el Oracle SQL Developer:

 drop table empleados;
 drop table secciones;

 create table secciones(
  codigo number(2),
  nombre varchar2(20),
  sueldo number(5,2),
  constraint CK_secciones_sueldo check (sueldo>=0),
  constraint PK_secciones primary key (codigo)
 );

 create table empleados(
  legajo number(3),
  documento char(8),
  sexo char(1),
  constraint CK_empleados_sexo check (sexo in ('f','m')),
  apellido varchar2(20),
  nombre varchar2(20),
  domicilio varchar2(30),
  seccion number(2) not null,
  cantidadhijos number(2),
  constraint CK_empleados_hijos check (cantidadhijos>=0),
  estadocivil char(10),
  constraint CK_empleados_estadocivil check (estadocivil in ('casado','divorciado','soltero','viudo')),
  fechaingreso date,
  constraint PK_empleados primary key (legajo),
  constraint FK_empleados_seccion
   foreign key (seccion)
   references secciones(codigo),
  constraint UQ_empleados_documento
   unique(documento)
 );

 insert into secciones values(1,'Administracion',300);
 insert into secciones values(2,'Contaduría',400);
 insert into secciones values(3,'Sistemas',500);

 insert into empleados
  values(100,'22222222','f','Lopez','Ana','Colon 123',1,2,'casado','10/10/1990');
 insert into empleados
  values(101,'23333333','m','Lopez','Luis','Sucre 235',1,0,'soltero','02/10/1990');
 insert into empleados 
  values(102,'24444444','m','Garcia','Marcos','Sarmiento 1234',2,3,'divorciado','07/12/1998');
 insert into empleados
  values(103,'25555555','m','Gomez','Pablo','Bulnes 321',3,2,'casado','10/09/1998');
 insert into empleados
 values(104,'26666666','f','Perez','Laura','Peru 1254',3,3,'casado','05/09/2000');

 -- Eliminamos la vista "vista_empleados":
  drop view vista_empleados;
 
 -- Creamos la vista "vista_empleados", que es resultado de una combinación en la 
 -- cual se muestran 5 campos:
 create view vista_empleados as
  select (apellido||' '||e.nombre) as nombre,sexo,
   s.nombre as seccion, cantidadhijos
   from empleados e
   join secciones s
   on codigo=seccion;

 -- Veamos la información de la vista:
 select * from vista_empleados;

 -- Eliminamos la tabla "empleados":
 drop table empleados;

 -- Verificamos que la vista aún existe consultando "user_objects":
 select * from user_objects where object_name='VISTA_EMPLEADOS';

 --Verificamos que la vista "vista_empleados" aún existe consultando "user_catalog":
 select * from user_catalog where table_type='VIEW';

 -- Si consultamos la vista, aparecerá un mensaje de error, pues la tabla "empleados"
 -- a la cual hace referencia la vista, no existe:
 select * from vista_empleados;

 -- Eliminamos la vista:
 drop view vista_empleados;

 -- Verificamos que la vista ya no existe:
 select * from user_catalog where table_name='VISTA_EMPLEADOS';

Retornar