Sunteți pe pagina 1din 7

Practica 7

Nombre: CRISTIAN MARTINEZ VERA Grupo: 303


Índice tipo primary
Ejemplo 1. Una empresa almacena los datos de sus clientes en una tabla llamada "clientes".

1- 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)
);
2- Vea la estructura de los índices la tabla y analice la información:

Ejemplo 2. Un instituto de enseñanza almacena los datos de sus estudiantes en una tabla llamada
"alumnos".

1- 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) );
2- Vea la estructura de los índices la tabla y analice la información:

Índice común
Ejemplo 1. Trabajamos con la tabla "libros" de una librería. Creamos la tabla "libros" con 2 índices:
- una clave primaria (codigo)
- un índice común por el campo "editorial"

create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor
varchar(30), editorial varchar(15), primary key(codigo), index i_editorial (editorial) );

Analicemos la estructura de los índices:


show index from libros;

Analicemos esta información:

Ejemplo 2. Se pueden crear índices por varios campos:

create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor
varchar(30), editorial varchar(15), primary key(codigo), index i_tituloeditorial (titulo,editorial) );
Note que los campos se listan entre paréntesis separados por comas.

Veamos la información de los índices:


show index from libros;

Analicemos esta información:

Ejercicio 1 La tabla llamada "medicamentos" de una farmacia.

1- Cree la tabla e indéxela por el campo "laboratorio":


create table medicamentos( codigo int unsigned auto_increment, nombre varchar(20) not
null, laboratorio varchar(20), precio decimal (6,2) unsigned, cantidad int unsigned, primary
key(codigo), index i_laboratorio (laboratorio) );
2- Visualice los índices de la tabla "medicamentos" y analice la información:

Ejercicio 2 La tabla "clientes" de una empresa.

1- Créela y defina un índice por múltiples campos, por ciudad y provincia: 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), primary key (codigo),
index i_ciudadprovincia (ciudad,provincia) );
2- Muestre los índices:

3- Analice la información: Aparecen 3 filas, 3 índices. Uno de ellos corresponde a la clave


primaria (PRIMARY), es único (los valores no se repiten) y no acepta valores nulos. Otro
índice, llamado "i_ciudadprovincia", es No único, es decir, acepta valores repetidos, consta
de 2 campos, el orden es "ciudad" y "provincia" y acepta valores nulos (ambos campos).

Ejercicio 3 La tabla "agenda" que registra la información referente a sus amigos.

1- Cree la tabla con la siguiente estructura: create table agenda( apellido varchar(30),
nombre varchar(20) not null, domicilio varchar(30), telefono varchar(11), mail varchar(30),
index i_apellido (apellido) );
2- Ingrese los siguientes registros: insert into agenda values('Perez','Juan','Sarmiento
345','4334455','juancito@gmail.com'); insert into agenda values('Garcia','Ana','Urquiza
367','4226677', 'anamariagarcia@hotmail.com‘); insert into agenda
values('Lopez','Juan','Avellaneda 900',null,'juancitoLopez@gmail.com'); insert into agenda
values('Juarez','Mariana','Sucre 123','0525657687', 'marianaJuarez2@gmail.com'); insert
into agenda values('Molinari','Lucia','Peru 1254','4590987', 'molinarilucia@hotmail.com');
insert into agenda values('Ferreyra','Patricia','Colon 1534','4585858',null); insert into
agenda values('Perez','Susana','San Martin 333',null,null); insert into agenda
values('Perez','Luis','Urquiza 444','0354545256','perezluisalberto@hotmail.com'); insert
into agenda values('Lopez','Maria','Salta 314',null,'lopezmariayo@gmail.com');
3- Vea la información de los índices:

4- Analice la información.

Índice único
Ejercicio 1. Crearemos dos índices únicos, uno por un solo campo y otro multicolumna:

create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor
varchar(30), editorial varchar(15), unique i_codigo (codigo), unique i_tituloeditorial
(titulo,editorial) );

Veamos la información de los índices:


show index from libros;

Analicemos esta información: Aparecen 3 filas.

La tabla tiene 2 índices (2 filas corresponden al mismo índice). Ambos índices son únicos, o sea, no
permiten valores repetidos, esto se indica en la columna "Non_unique".

Ejercicio 2. Un instituto de enseñanza guarda los siguientes datos de sus alumnos:

- año de inscripción
- número de inscripto, comienza desde 1 cada año
- nombre del alumno, - documento del alumno
- domicilio
- ciudad
- provincia
- clave primaria: número de inscripto y año de inscripción.

1- Cree la tabla definiendo una clave primaria compuesta (año de inscripción y número de
inscripto), un índice único por el campo "documento" y un índice común por ciudad y provincia:
create table alumnos( año year not null, numero int unsigned not null, nombre varchar(30),
documento char(8) not null, domicilio varchar(30), ciudad varchar(20), provincia varchar(20),
primary key(año,numero), unique i_documento (documento), index i_ciudadprovincia
(ciudad,provincia), );
3- Vea los índices de la tabla.

4- Ingrese algunos registros. Ingrese 2 ó 4 alumnos para los años 2004, 2005 y 2006.

5- Intente ingresar un alumno con clave primaria repetida.

6- Intente ingresar un alumno con documento repetido.

7- Ingrese varios alumnos de la misma ciudad y provincia

Ejercicio 3. Una clínica registra las consultas de los pacientes en una tabla llamada "consultas" que
almacena la siguiente información:
- fecha de la consulta,
- número de consulta por día,
- documento del paciente,
- obra social del paciente,
- nombre del médico que atiende al paciente,

1- Cree la tabla con una clave primaria compuesta (fecha y número de consulta); un índice
único (fecha,documento y médico). Hay 2 campos por los cuales podemos realizar
consultas frecuentemente: "medico" y "obrasocial", cree índices para esos campos.
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), primary
key(fecha,numero), unique i_consulta(documento,fecha,medico), index i_medico
(medico), index i_obrasocial (obrasocial) );
3- Vea los índices.

4- Los valores de la clave primaria no pueden repetirse. Intente ingresar dos pacientes el
mismo día con el mismo número de consulta.
5- Los valores para el índice único no pueden repetirse. Intente ingresar una consulta del
mismo paciente, en la misma fecha con el mismo médico.

6- Note que los índices por los campos "medico" y "obra social" son comunes, porque los
valores se repiten. Ingrese consultas en las cuales se repitan los médicos y las obras
sociales.

Ejercicio 4. Una empresa de remises tiene registrada la información de sus vehículos en una tabla
llamada "remis".

1- Cree la tabla con una clave primaria por número de vehículo y un índice único por
"patente", éste es un valor por el cual podemos realizar consultas frecuentemente y es
único (igual que el número del remis): create table remis( patente char(6) not null, numero
tinyint unsigned not null, marca varchar(15), modelo year, primary key (numero), unique
i_patente (patente), );
2- Vea los índices y analice la información.

3- Los valores de la clave primaria no pueden repetirse. Intente ingresar 2 vehículos con el
mismo número.

4- Los valores para el índice único no pueden repetirse. Intente ingresar 2 vehículos con igual
patente.

Eliminar índice
Ejercicio 1 Un instituto de enseñanza guarda los datos de sus alumnos en una tabla llamada
"alumnos".

1- Cree la tabla con la siguiente estructura: create table alumnos( año year not null, numero
int unsigned not null, nombre varchar(30), documento char(8) not null, domicilio
varchar(30), ciudad varchar(20), provincia varchar(20), primary key(año,numero), unique
i_documento (documento), index i_ciudadprovincia (ciudad,provincia), );
2- Vea los índices de la tabla.

3- Elimine el índice "i_ciudadprovincia".


4- Verifique la eliminación usando "show index".

5- Intente eliminar el índice PRIMARY.

6- Elimine el índice único.

7- Verifique la eliminación usando "show index".

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

1- Cree la tabla con la estructura siguiente: create table consultas( fecha date, numero int
unsigned, documento char(8) not null, obrasocial varchar(30), medico varchar(30), primary
key(fecha,numero), unique i_consulta(documento,fecha,medico), index i_medico
(medico), index i_obrasocial (obrasocial) );
2- Vea los índices.

3- Elimine el índice único.

4- Elimine el índice "i_medico".

5- Verifique las eliminaciones anteriores visualizando los índices.

6- Elimine el índice "i_obrasocial".


Crear índices en tablas ya existentes
Ejercicio 1. Una clínica registra las consultas de los pacientes en una tabla llamada "consultas".

- 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), );

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

2- Agregue un índice común por el campo "medico":

3- Agregue un índice común por el campo "obrasocial":

4- Vea los índices.

S-ar putea să vă placă și