Practica Base de Datos

Practica 7 Nombre: CRISTIAN MARTINEZ VERA Grupo: 303 Índice tipo primary Ejemplo 1. Una empresa almacena los datos de su

Views 248 Downloads 0 File size 692KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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','[email protected]'); insert into agenda values('Garcia','Ana','Urquiza 367','4226677', '[email protected]‘); insert into agenda values('Lopez','Juan','Avellaneda 900',null,'[email protected]'); insert into agenda

values('Juarez','Mariana','Sucre 123','0525657687', '[email protected]'); insert into agenda values('Molinari','Lucia','Peru 1254','4590987', '[email protected]'); 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','[email protected]'); insert into agenda values('Lopez','Maria','Salta 314',null,'[email protected]'); 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.