41 - Típos de índices (create y drop)


Dijimos que hay 3 tipos de índices:

El índice llamado primary se crea automáticamente cuando establecemos un campo como clave primaria.

Los valores indexados deben ser únicos y además no pueden ser nulos. Una tabla solamente puede tener una clave primaria. Puede ser multicolumna, es decir, pueden estar formados por más de un campo.

Vamos a otro tipo de índice común. Un índice común se crea con "create index", los valores no necesariamente son únicos y aceptan valores "null". Puede haber varios por tabla.

Vamos a trabajar con nuestra tabla "libros".

 create table libros(
  codigo int not null,
  titulo varchar(40),
  autor varchar(30),
  editorial varchar(15),
  precio decimal(6,2)
 );

Un campo por el cual realizamos consultas frecuentemente es "editorial", indexar la tabla por ese campo sería útil.

Creamos un índice:

 create index I_libros_editorial on libros(editorial);

Debemos definir un nombre para el índice (en este caso utilizamos como nomenclatura el carater I, luego el nombre de la tabla y finalmente el o los nombres del campo por el cual creamos el índice. Luego de la palabra clave on indicamos el nombre de la tabla y entre paréntesis el nombre del campo o los campos por el cual se indexa.


Veamos otro tipo de índice llamado "único". Un índice único se crea con "create unique index", los valores deben ser únicos y diferentes, aparece un mensaje de error si intentamos agregar un registro con un valor ya existente. Permite valores nulos y pueden definirse varios por tabla.

Crearemos un índice único por los campos titulo y editorial:

  create unique index I_libros_tituloeditorial on libros(titulo,editorial);

Para eliminar un índice usamos "drop index". Ejemplo:

 drop index I_libros_editorial;
 drop index I_libros_tituloeditorial;

Se elimina un índice con "drop index" seguido de su nombre.

Podemos eliminar los índices creados, pero no el creado automáticamente con la clave primaria.


Retornar