martes, 30 de octubre de 2012

41 - Indice de tipo primary.

El índice llamado primary se crea automáticamente cuando establecemos un campo como clave primaria, no podemos crearlo directamente. El campo por el cual se indexa puede ser de tipo numérico o de tipo caracter.

Los valores indexados deben ser únicos y además no pueden ser nulos. Una tabla solamente puede tener una clave primaria por lo tanto, solamente tiene un índice PRIMARY.

Puede ser multicolumna, es decir, pueden estar formados por más de 1 campo.

Veamos un ejemplo definiendo la tabla "libros" con una clave primaria:

 create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40) not null,
  autor varchar(30),
  editorial varchar(15),
  primary key(codigo)
 );
 
Podemos ver la estructura de los índices de una tabla con "show index". Por ejemplo:

 show index from libros;
 
Aparece el índice PRIMARY creado automáticamente al definir el campo "codigo" como clave primaria.


PROBLEMA RESUELTO

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

Eliminamos la tabla si existe.

Creamos la tabla definiendo el campo "codigo" como 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 estructura de los índices de la tabla:

 show index from libros;
 
Muestra la siguiente información:

Table Non_unique Key_name Column_name Null
______________________________________________________________
libros  0 PRIMARY  codigo

Aparece el índice PRIMARY creado automáticamente al definir el campo "codigo" como clave primaria.

La columna "Table" indica a qué tabla pertenece el índice. La columna "Non_unique" indica si los valores del índice son No únicos, es decir, si hay valores repetidos para ese campo, aquí indica "0" (false), o sea, los valores son únicos. La columna "Key_name" muestra el nombre del índice. La columna "Column_name" muestra el campo indexado y la columna "Null" señala si el campo indexado permite valores nulos, cuando los permite aparace "YES", aquí no, así que no los permite.


PROBLEMA PROPUESTO

Una empresa almacena los datos de sus clientes en una tabla llamada "clientes".

1- Elimine la tabla "clientes" si existe.

2- Créela con los siguientes campos y clave:
 
 create table clientes(
  documento char(8),
  apellido varchar(20),
  nombre varchar(20),
  domicilio varchar(30),
  primary key(documento)
 );

3- Vea la estructura de los índices la tabla y analice la información:
 
 
Otros problemas: 
Un instituto de enseñanza almacena los datos de sus estudiantes en una tabla llamada "alumnos".

1- Elimine la tabla "alumnos" si existe.

2- Cree la tabla con la siguiente estructura:
 
  create table alumnos(
  legajo varchar(4) not null,
  documento char(8) not null,
  apellido varchar(30),
  nombre varchar(30),
  domicilio varchar(30),
  primary key (legajo)
 );

3- Vea la estructura de los índices la tabla y analice la información:

 

No hay comentarios:

Publicar un comentario