46 - Indices (eliminar) |
Un profesor guarda algunos datos de sus alumnos en una tabla llamada "alumnos".
1- Elimine la tabla y créela con la siguiente estructura:
drop table alumnos; create table alumnos( legajo char(5) not null, documento char(8) not null, nombre varchar2(30), curso char(1) not null, materia varchar2(20) not null, notafinal number(4,2) );
2- Cree un índice no único para el campo "nombre".
3- Establezca una restricción "primary key" para el campo "legajo"
4- Verifique que se creó un índice con el nombre de la restricción.
5- Verifique que se creó un índice único con el nombre de la restricción consultando el diccionario de índices.
6- Intente eliminar el índice "PK_alumnos_legajo" con "drop index".
7- Cree un índice único para el campo "documento".
8- Agregue a la tabla una restricción única sobre el campo "documento" y verifique que no se creó un índice, Oracle emplea el índice creado en el punto anterior.
9- Intente eliminar el índice "I_alumnos_documento" (no se puede porque una restricción lo está utilizando)
10- Elimine la restricción única establecida sobre "documento".
11- Verifique que el índice "I_alumnos_documento" aún existe.
12- Elimine el índice "I_alumnos_documento", ahora puede hacerlo porque no hay restricción que lo utilice.
13-Elimine el índice "I_alumnos_nombre".
14- Elimine la restricción "primary key"/
15- Verifique que el índice "PK_alumnos_legajo" fue eliminado (porque fue creado por Oracle al establecerse la restricción)
16- Cree un índice compuesto por los campos "curso" y "materia", no único.
17- Verifique su existencia.
18- Elimine la tabla "alumnos" y verifique que todos los índices han sido eliminados junto con ella.
Ver solucióndrop table alumnos; create table alumnos( legajo char(5) not null, documento char(8) not null, nombre varchar(30), curso char(1) not null, materia varchar2(20) not null, notafinal number(4,2) ); create index I_alumnos_nombre on alumnos(nombre); alter table alumnos add constraint PK_alumnos_legajo primary key (legajo); select constraint_name, constraint_type, index_name from user_constraints where table_name='ALUMNOS'; select index_name,uniqueness from user_indexes where table_name='ALUMNOS'; drop index PK_alumnos_legajo; create unique index I_alumnos_documento on alumnos(documento); alter table alumnos add constraints UQ_alumnos_documento unique (documento); select constraint_name, constraint_type, index_name from user_constraints where table_name='ALUMNOS'; drop index I_alumnos_documento; alter table alumnos drop constraint UQ_ALUMNOS_DOCUMENTO; select index_name,uniqueness from user_indexes where table_name='ALUMNOS'; drop index I_alumnos_documento; drop index I_alumnos_nombre; alter table alumnos drop constraint PK_ALUMNOS_LEGAJO; select index_name,uniqueness from user_indexes where table_name='ALUMNOS'; create index I_alumnos_cursomateria on alumnos(curso,materia); select index_name,uniqueness from user_indexes where table_name='ALUMNOS'; drop table alumnos; select index_name,uniqueness from user_indexes where table_name='ALUMNOS';