You are on page 1of 5

; parpriiPROCEDIMIENTO COMPLETO PARA PODER GENERAR LA PRIMER CONSULTA (LIBROS POR AUTOR) 1.

Crear la base de datos: CREATE DATABASE biblioteca; 2. Poner en uso la base de datos: USE DATABASE biblioteca; 3. Crear las tablas. Teniendo en cuenta el anlisis que realizamos en clase de acuerdo al ejercicio planteado, (relacin n:m), para esta consulta se necesita crear las tablas autor, libro y escribe(con las forneas del autor y del libro) y adicionalmente como la tabla libro, editorial tiene relacin 1:n, entonces debemos tener una fornea en libro cod_ed y para poderla crear debe existir la tabla editorial: CREATE TABLE autor(cod_autor INT(3) PRIMARY KEY NOT NULL, nom_autor VARCHAR(40)); CREATE TABLE editorial(cod_ed INT(3) PRIMARY KEY NOT NULL, nom_ed VARCHAR(30)); CREATE TABLE libro(cod_libro INT(3) PRIMARY KEY NOT NULL , nom_libro VARCHAR(50), cod_ed INT(3),fecha_ed DATE, num_ed INT(2), INDEX indxE (cod_ed), FOREIGN KEY (cod_ed) REFERENCES editorial(cod_ed) ON DELETE CASCADE ON UPDATE CASCADE)Type=InnODB;

CREATE TABLE escribe(cod_autor INT(3), cod_libro INT(3), INDEX indxA (cod_autor), INDEX indxL (cod_libro), FOREIGN KEY (cod_autor) REFERENCES autor(cod_autor), FOREIGN KEY (cod_libro) REFERENCES libro(cod_libro) ON DELETE CASCADE ON UPDATE CASCADE);

Si tienen todo ok y les marca error, borren la palabra Type=InnODB. Ojo no borren el ;

Si quieren ver el script: SHOW CREATE TABLE ESCRIBE

4. Pero se pudieron dar cuenta, no colocamos la direccin ni el telefono de la editorial, en esos casos, podemos adicionar (ADD) estoS campos a la tabla asi: ALTER TABLE editorial ADD (dir_ed VARCHAR(40),tel_ed varchar(20));

5. Insertar datos en las tablas, teniendo en cuenta que sean consistentes y de acuerdo al orden y cantidad de campos, puede hacerlo de dos formas: PRIMERA FORMA: INSERT INTO autor VALUES(1,GABRIEL GARCIA MARQUEZ); INSERT INTO editorial VALUES(1,NORMA,Calle 34 12-34 Ofic 102,2343434); INSERT INTO libro VALUES(6,CIEN AOS DE SOLEDAD,2007/01/01,1); INSERT INTO escribe VALUES(1,6); SEGUNDA FORMA: Paso 1. Crea un archivo de texto (autor.txt) y para indicar el cambio de campo pulsa la tecla TAB (para pasar del 1l a GABRIEL GARCIA MARQUEZ se pulsa la tecla TAB)
11 22 13 41 15 61 17 91 2 23 GABRIEL GARCIA MARQUEZ ROSEN ROSINSKI ALVARO MUTIS ANTONIO CORREA LOSADA AMPARO OSORIO GONZALO MARQUEZ CRISTO AUGUSTO PINILLA DARIO RUIS GOMEZ ENRIQUE RODRIGUEZ ALVARO RODRIGUEZ

Paso 2. estando en MySQL digitar: LOAD DATA LOCAL INFILE ruta donde esta el archivo/autor.txt INSERT INTO autor; En mi ruta por ejemplo sera:

6. Para ver los datos que ingres : SELECT * FROM autor;

7. Igual se hace para las dems tablas.

8. Y listo ya podemos hacer una consulta de libros por autor. Analice detenidamente qu sucede en cada una de las siguientes consultas: SELECT nom_libro, nom_autor FROM autor ,libro WHERE libro.cod_libro = 6; SELECT nom_libro, nom_autor FROM autor,libro WHERE autor.cod_autor =23; SELECT nom_libro,nom_autor FROM autor,libro WHERE escriben.cod_autor =23; LEFT JOIN : Muestra todos los registros de la primera tabla y solo los registros relacionados en la segunda tabla. RIGHT JOIN: Muestra todos los registros de la segunda tabla y solo los registros relacionados de la primera tabla. SELECT nom_libro,nom_autor FROM escriben LEFT JOIN autor escriben.cod_autor=autor.cod_autor RIGHT JOIN libro escriben.cod_libro=libro.cod_libro WHERE escriben.cod_autor=autor.cod_autor; ON ON

9. para borrar una tabla DROP TABLE escribe; 10. para borrar contenido de la tabla DELETE FROM autor; Bueno espero con esta gua puedan refrescar los conocimientos vistos y adicionalmente les de ideas para generar las consultas, recuerden que se evaluarn en la prxima clase y corresponden a la nota del trabajo (35%), las consultas son las siguientes:

1. Nombres de los Libros por Autor

2. Ejemplares por Libro 3. Temas x Libro 4. Libro x Tema 5. Ejemplares solicitados Agotados en total y por socio 6. Libros no referenciados que son solicitados en total y por socios 7. Libros prestados en total y por socio 8. Libros reservados 9. Libros x Editorial 10. Sanciones por Socio

11.

You might also like