70 - Eliminar campos (alter table- drop)


Primer problema:

Trabaje con una tabla llamada "empleados" y "secciones".
1- Elimine las tablas y créelas:

 drop table empleados;
 drop table secciones;

 create table secciones(
  codigo number(2),
  nombre varchar(20),
  primary key (codigo)
 );

 create table empleados(
  apellido varchar2(20),
  nombre varchar2(20) not null,
  domicilio varchar2(30),
  seccion number(2),
  sueldo number(8,2),
  constraint CK_empleados_sueldo
   check (sueldo>=0) disable,
  fechaingreso date,
  constraint FK_empleados_seccion
   foreign key (seccion)
   references secciones(codigo)
   on delete set null
 );

2- Ingrese algunos registros en ambas tablas:

 insert into secciones values(8,'Secretaria');
 insert into secciones values(9,'Contaduria');
 insert into secciones values(10,'Sistemas');

 insert into empleados values('Lopez','Juan','Colon 123',8,505.50,'10/10/1980');
 insert into empleados values('Gonzalez','Juana','Avellaneda 222',9,600,'01/05/1990');
 insert into empleados values('Perez','Luis','Caseros 987',10,800,'12/09/2000');

3- Elimine el campo "domicilio" y luego verifique la eliminación

4- Vea las restricciones de "empleados" (1 restricción "foreign key" y 2 "check")

5- Intente eliminar el campo "codigo" de "secciones"

6- Elimine la restricción "foreign key" de "empleados", luego elimine el campo "codigo" de "secciones" y verifique la eliminación

7- Verifique que al eliminar el campo "codigo" de "secciones" se ha eliminado la "primary key" de "secciones"

8- Elimine el campo "sueldo" y verifique que la restricción sobre tal campo se ha eliminado

9- Cree un índice no único por el campo "apellido" y verifique su existencia consultando "user_indexes"

10- Elimine el campo "apellido" y verifique que el índice se ha eliminado

11- Elimine 2 campos de "empleados" y vea la estructura de la tabla

12- Intente eliminar el único campo de "empleados"

Ver solución

 drop table empleados;
 drop table secciones;

 create table secciones(
  codigo number(2),
  nombre varchar(20),
  primary key (codigo)
 );

 create table empleados(
  apellido varchar2(20),
  nombre varchar2(20) not null,
  domicilio varchar2(30),
  seccion number(2),
  sueldo number(8,2),
  constraint CK_empleados_sueldo
   check (sueldo>=0) disable,
  fechaingreso date,
  constraint FK_empleados_seccion
   foreign key (seccion)
   references secciones(codigo)
   on delete set null
 );

 insert into secciones values(8,'Secretaria');
 insert into secciones values(9,'Contaduria');
 insert into secciones values(10,'Sistemas');

 insert into empleados values('Lopez','Juan','Colon 123',8,505.50,'10/10/1980');
 insert into empleados values('Gonzalez','Juana','Avellaneda 222',9,600,'01/05/1990');
 insert into empleados values('Perez','Luis','Caseros 987',10,800,'12/09/2000');

 alter table empleados
  drop column domicilio;

 describe empleados;

 select *from user_constraints
   where table_name='EMPLEADOS';

 alter table secciones
  drop column codigo;

 alter table empleados
  drop constraint FK_empleados_seccion;

 alter table secciones
  drop column codigo; 

 describe secciones;

 select *from user_constraints
   where table_name='SECCIONES';

 alter table empleados
  drop column sueldo;

 select *from user_constraints
   where table_name='EMPLEADOS';

 create index I_empleados_apellido
  on empleados(apellido);

 select *from user_indexes
   where table_name='EMPLEADOS';

 alter table empleados
  drop column apellido;

 select *from user_indexes
   where table_name='EMPLEADOS';

 alter table empleados
  drop column fechaingreso;

 alter table empleados
  drop column seccion;

 describe empleados;

 alter table empleados
  drop column nombre;

 


Retornar