martes, 30 de octubre de 2012

45 - Creación de índices a tablas existentes (create index)

Podemos agregar un índice a una tabla existente.

Para agregar un índice común a la tabla "libros" tipeamos:

 create index i_editorial on libros (editorial);
 
Entonces, para agregar un índice común a una tabla existente usamos "create index", indicamos el nombre, sobre qué tabla y el o los campos por los cuales se indexará, entre paréntesis.

Para agregar un índice único a la tabla "libros" tipeamos:

 create unique index i_tituloeditorial on libros (titulo,editorial);
 
Para agregar un índice único a una tabla existente usamos "create unique index", indicamos el nombre, sobre qué tabla y entre paréntesis, el o los campos por los cuales se indexará.

Un índice PRIMARY no puede agregarse, se crea automáticamente al definir una clave primaria.


PROBLEMA RESUELTO

Trabajamos con nuestra tabla "libros" de una librería.

Eliminamos la tabla, si existe.

Creamos la tabla con clave primaria:

 create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40) not null,
  autor varchar(30),
  editorial varchar(15),
  primary key (codigo)
 );
 
Veamos la información de los índices:

 show index from libros;
 
Vemos que tenemos el índice creado al definir la clave primaria (PRIMARY).

Para agregar un índice común a la tabla "libros" tipeamos:

 create index i_editorial on libros (editorial);
 
Veamos la información de los índices:

 show index from libros;
 
Aparecen 2, "PRIMARY" y "i_editorial".

Para agregar un índice único a la tabla "libros" tipeamos:

 create unique index i_tituloeditorial on libros (titulo,editorial);
 
Veamos la información de los índices:

 show index from libros;
 
Aparecen 3, "PRIMARY", "i_editorial" y "i_tituloeditorial".


PROBLEMA PROPUESTO

Retome la tabla "clientes" que almacena información sobre los clientes de una 
empresa.

1- Elimine la tabla "clientes", si existe.

2- Créela con esta estructura:
 
  create table clientes (
  documento char (8) not null,
  nombre varchar(30) not null,
  domicilio varchar(30),
  ciudad varchar(20),
  provincia varchar (20),
  telefono varchar(11)
 );

3- Agregue un índice común por ciudad y provincia:
 
4- Vea la información de los índices:

5- Agregue un índice único por el campo "documento":
  
 
Otros problemas: 

Una clínica registra las consultas de los pacientes en una tabla llamada 
"consultas".

1- Elimine la tabla si existe.

2- Cree la tabla con la siguiente estructura:
 
  create table consultas(
  fecha date,
  numero int unsigned,
  documento char(8) not null,
  obrasocial varchar(30),
  medico varchar(30),
 );

3- Agregue un índice único multicampo (fecha,documento,medico):

4- Agregue un índice común por el campo "medico":
 
5- Agregue un índice común por el campo "obrasocial":
 
6- Vea los índices.
 


No hay comentarios:

Publicar un comentario