| 45 - Indices (Crear - Información) | 
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), materia varchar2(30), notafinal number(4,2) );
2- Ingresamos algunos registros:
 insert into alumnos values ('A123','22222222','Perez Patricia','5','Matematica',9);
 insert into alumnos values ('A234','23333333','Lopez Ana','5','Matematica',9);
 insert into alumnos values ('A345','24444444','Garcia Carlos','6','Matematica',8.5);
 insert into alumnos values ('A348','25555555','Perez Patricia','6','Lengua',7.85);
 insert into alumnos values ('A457','26666666','Perez Fabian','6','Lengua',3.2);
3- Intente crear un índice único para el campo "nombre".
No lo permite porque hay valores duplicados.
4- Cree un índice no único, para el campo "nombre".
5- Cree un índice único, para el campo "lejago".
6- Establezca una restricción "primary key" sobre el campo "legajo".
7- Verifique que Oracle no creó un índice al agregar la restricción, utilizó el índice "I_alumnos_legajo" existente.
8- Agregue una restricción única sobre el campo "documento".
9- Verifique que Oracle creó un índice al agregar la restricción y le dio el nombre de la restricción.
10- Intente crear un índice único para la tabla "alumnos" sobre el campo "notafinal"
11- Indexe la tabla "alumnos" por el campo "notafinal" (índice no único)
12- Indexe la tabla "alumnos" por los campos "curso" y "materia" (índice no único)
13- Intente crear un índice único sobre "materia" (error pues hay datos duplicados)
14- Vea los indices de "alumnos"
15- Consulte el diccionario "user_ind_columns" y analice la información retornada.
16- Vea todos los índices de la base de datos activa que contengan en su nombre el patrón "%EMPLEADOS%" (5 filas retornadas)
Ver solución
 drop table alumnos;
 create table alumnos(
  legajo char(5) not null,
  documento char(8) not null,
  nombre varchar(30),
  curso char(1),
  materia varchar2(30),
  notafinal number(4,2)
 );
 insert into alumnos values ('A123','22222222','Perez Patricia','5','Matematica',9);
 insert into alumnos values ('A234','23333333','Lopez Ana','5','Matematica',9);
 insert into alumnos values ('A345','24444444','Garcia Carlos','6','Matematica',8.5);
 insert into alumnos values ('A348','25555555','Perez Patricia','6','Lengua',7.85);
 insert into alumnos values ('A457','26666666','Perez Fabian','6','Lengua',3.2);
 create unique index I_alumnos_nombre
 on alumnos(nombre);
 create index I_alumnos_nombre
 on alumnos(nombre); 
 create index I_alumnos_legajo
 on alumnos(legajo); 
 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';
 alter table alumnos
  add constraint UQ_alumnos_documento
  unique (documento);
 select constraint_name, constraint_type, index_name
  from user_constraints
  where table_name='ALUMNOS';
 create unique index I_alumnos_notafinal
 on alumnos(notafinal); 
 create index I_alumnos_notafinal
 on alumnos(notafinal); 
 create index I_alumnos_cursomateria
 on alumnos(curso,materia); 
 create unique index I_alumnos_materia
  on alumnos(materia); 
 select index_name, index_type, uniqueness
  from user_indexes
  where table_name='ALUMNOS';
 select index_name,column_name,column_position
  from user_ind_columns
  where table_name='ALUMNOS';
 select *from user_objects
  where object_type='INDEX' and
  object_name like '%ALUMNOS%';