Problema:
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- Elimine la tabla "alumnos" si existe.
2- 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.
Otros problemas:
A) 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- Elimine la tabla si existe.
2- 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.
3- 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)
);
4- Vea los índices.
5- Los valores de la clave primaria no pueden repetirse. Intente ingresar dos pacientes el mismo
día con el mismo número de consulta.
6- 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.
7- Note que los índices por los campos "medico" y "obrasocial" son comunes, porque los valores se
repiten. Ingrese consultas en las cuales se repitan los médicos y las obras sociales.
B) Una empresa de remises tiene registrada la información de sus vehículos en una tabla
llamada "remis".
1- Elimine la tabla si existe.
2- 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),
);
3- Vea los índices y analice la información.
4- Los valores de la clave primaria no pueden repetirse. Intente ingresar 2 vehículos con el mismo
número.
5- Los valores para el índice único no pueden repetirse. Intente ingresar 2 vehículos con igual
patente.