43 - Indice único (unique) |
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.
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.