



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
En este documento se presenta un ejemplo práctico de cómo crear y manipular una base de datos SQL utilizando el lenguaje de consultas Structured Query Language (SQL). Se crean tablas para almacenar datos de estudiantes y libros, se realizan operaciones CRUD (Create, Read, Update, Delete) y se ejecutan consultas para recuperar información. El ejemplo utiliza la base de datos 'BIBLIOTECA3'.
Tipo: Ejercicios
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




--Escribir los comandos para crear la base de datos CREATE DATABASE BIBLIOTECA --Escribir los comandos para crear las tablas CREATE TABLE estudiante ( id_estudiante VARCHAR ( 8 ) NOT NULL, nombre_estudiante VARCHAR ( 30 ) NOT NULL, libros_deudor Tinyint NOT NULL DEFAULT '0', CONSTRAINT pk_estudiante PRIMARY KEY (id_estudiante) ) CREATE TABLE libro ( id_libro VARCHAR ( 8 ) NOT NULL, titulo_libro VARCHAR ( 30 ) NOT NULL, libros_disponibles Tinyint NOT NULL DEFAULT '0', CONSTRAINT pk_libro PRIMARY KEY (id_libro), CONSTRAINT ck_libros_disponibles CHECK (libros_disponibles = 0 or libros_disponibles = 1 ) ) CREATE TABLE prestamo ( id_prestamo VARCHAR ( 8 ) NOT NULL, fecha_prestamo DATE DEFAULT getdate() NOT NULL, id_estudiante VARCHAR ( 8 ) NOT NULL, id_libro VARCHAR ( 8 ) NOT NULL, fecha_devolucion DATE , CONSTRAINT pk_prestamo PRIMARY KEY (id_prestamo), CONSTRAINT fk_libro_prestamo FOREIGN KEY (id_libro) REFERENCES libro (id_libro), CONSTRAINT fk_estudiante_prestamo FOREIGN KEY (id_estudiante) REFERENCES estudiante (id_estudiante), CONSTRAINT ck_fechas CHECK (fecha_devolucion>=fecha_prestamo) ) --Escriba un comando que borre la llave foránea de préstamo con libro. ALTER TABLE prestamo DROP CONSTRAINT fk_libro_prestamo --Escriba el comando que adicione el constraint de llave foránea de préstamo con libro. ALTER TABLE prestamo add CONSTRAINT fk_libro_prestamo FOREIGN KEY (id_libro) REFERENCES libro (id_libro) --Escriba el comando que cambie la extensión --del nombre del libro a 30 caracteres. ALTER TABLE libro ALTER COLUMN titulo_libro varchar( 30 ) NOT NULL ; --Escriba el comando que borre la columna libros_deudor ALTER TABLE estudiante DROP CONSTRAINT DF__estudiant__libro__37A5467C ALTER TABLE estudiante DROP COLUMN libros_deudor --Escriba el comando que adicione la coluna libros_deudor
ALTER TABLE estudiante ADD CONSTRAINT DF__estudiant__libro__37A5467C --Escriba el comando para borrar la tabla préstamo --Drop table prestamo --DML (escribir comando para responder a cada punto) --Ingrese los datos de 10 personas INSERT INTO estudiante VALUES ('est-000','Pedro Antonio Flores', 0 ) INSERT INTO estudiante VALUES ('est-001','Jose Marco Panfilo', 0 ) INSERT INTO estudiante VALUES ('est-002','Manuel Edgar Aban', 0 ) INSERT INTO estudiante VALUES ('est-003','Almagro Mauricio', 0 ) INSERT INTO estudiante VALUES ('est-004','Samuel San Miguel', 0 ) INSERT INTO estudiante VALUES ('est-005','Cayetano Ortega', 0 ) INSERT INTO estudiante VALUES ('est-006','Pedro Antonio Tejedor', 0 ) INSERT INTO estudiante VALUES ('est-007','Rodrigo Aguirre', 0 ) INSERT INTO estudiante VALUES ('est-008','Melchor Tejera', 0 ) INSERT INTO estudiante VALUES ('est-009','Manuel Antonio Campoy', 0 ) --Ingrese los datos de 10 libros INSERT INTO libro VALUES ('lib-000','Las mil y una noches', 1 ) INSERT INTO libro VALUES ('lib-001','Divina comedia', 1 ) INSERT INTO libro VALUES ('lib-002','Ficciones', 1 ) INSERT INTO libro VALUES ('lib-003','Don Quijote de la Mancha', 0 ) INSERT INTO libro VALUES ('lib-004','Relatos cortos', 1 ) INSERT INTO libro VALUES ('lib-005','Los hermanos Karamazov', 0 ) INSERT INTO libro VALUES ('lib-006','Romancero gitano', 1 ) INSERT INTO libro VALUES ('lib-007','El tambor de hojalata', 1 ) INSERT INTO libro VALUES ('lib-008','Ulises', 1 ) INSERT INTO libro VALUES ('lib-009','Edipo rey', 0 )
values ('pres-005','est-001','lib-005') COMMIT TRANSACTION BEGIN TRANSACTION UPDATE libro SET libros_disponibles = 0 WHERE id_libro ='lib-006' UPDATE estudiante SET libros_deudor= libros_deudor+ 1 WHERE id_estudiante='est-002' INSERT INTO prestamo (id_prestamo,id_estudiante,id_libro) values ('pres-006','est-002','lib-006') COMMIT TRANSACTION BEGIN TRANSACTION UPDATE libro SET libros_disponibles = 0 WHERE id_libro ='lib-007' UPDATE estudiante SET libros_deudor= libros_deudor+ 1 WHERE id_estudiante='est-002' INSERT INTO prestamo (id_prestamo,id_estudiante,id_libro) values ('pres-007','est-002','lib-007') COMMIT TRANSACTION select * from prestamo --Registre 3 devoluciones --Mediante una transacción BEGIN TRANSACTION --Colocar el libro en disponible UPDATE libro SET libros_disponibles= 1 WHERE id_libro ='lib-000' --Decrementar el numero de libros adeudados por el estudiante (libros deudor) UPDATE estudiante SET libros_deudor =libros_deudor- 1 WHERE id_estudiante='est-000' --Registrar la fecha de devolución UPDATE prestamo SET fecha_devolucion='2021-11-09' WHERE id_libro='lib- 000' and id_estudiante='est-000' COMMIT TRANSACTION BEGIN TRANSACTION UPDATE libro SET libros_disponibles= 1 WHERE id_libro ='lib-002' UPDATE estudiante SET libros_deudor =libros_deudor- 1 WHERE id_estudiante='est-002' UPDATE prestamo SET fecha_devolucion='2021-11-11' WHERE id_libro='lib- 002' and id_estudiante='est-002' COMMIT TRANSACTION BEGIN TRANSACTION UPDATE libro SET libros_disponibles= 1 WHERE id_libro ='lib-004' UPDATE estudiante SET libros_deudor =libros_deudor- 1 WHERE id_estudiante='est-004'
UPDATE prestamo SET fecha_devolucion='2021-11-12' WHERE id_libro='lib- 004' and id_estudiante='est-004' COMMIT TRANSACTION --CONSULTAS Y PROCESAMIENTOS --Liste los libros que están disponibles SELECT * FROM libro WHERE libros_disponibles= 1 --Muestre a los estudiantes que son deudores SELECT * FROM estudiante WHERE libros_deudor>= 0 --Muestre el código del libro y cuantas veces ha sido prestado SELECT id_libro ,count(id_libro) FROM libro GROUP BY (id_libro) --Muestre el libro mas leído SELECT id_libro ,count (id_libro) FROM prestamo GROUP BY id_libro ORDER BY count (id_libro) desc --Muestre los datos del estudiante que nunca --se prestó un libro ( que no conoce la biblioteca) SELECT * FROM estudiante E where NOT EXISTS (SELECT * FROM prestamo P WHERE E.id_estudiante=P.id_estudiante) --Muestre el número de prestamos por cada fecha SELECT fecha_prestamo ,count(fecha_prestamo) from prestamo GROUP BY (fecha_prestamo) --Muestre el número de prestamos por cada fecha, --no mostrar aquellos días que tienen 1 préstamo o menos SELECT fecha_prestamo ,count(fecha_prestamo) from prestamo GROUP BY (fecha_prestamo) HAVING COUNT(fecha_prestamo)<= 1 --Muestre los datos d ellos estudiantes que su --nombre comienza con F y no tiene a. (LIKE) SELECT * FROM estudiante WHERE nombre_estudiante like 'F%' AND nombre_estudiante NOT like '%a%' --Muestre el estudiante que se prestó al menos --un libro de los que leyó Sandro Nieto SELECT id_estudiante FROM prestamo WHERE id_estudiante = ANY ( SELECT id_libro FROM prestamo p WHERE id_estudiante =(SELECT id_estudiante from estudiante where nombre_estudiante='Sandro Nieto')) --Muestre el estudiante que se prestó todos los libros que leyó Sandro Nieto