70 - Eliminar campos (alter table- drop) |
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;