Está en la página 1de 4

Prueba de desarrollo: Taller de base de datos

Sección :D Apellidos : Bautista Calderón


Asignatura : Taller de base de datos Nombres : Elías Daniel
Docente : Rolando Zapata Maraví Fecha : 08/11/2022

Se cuenta con el siguiente diagrama de base de datos:.

Ahora elabore las siguientes consultas:


(Cada consulta equivale a 3 puntos)

Consulta 01: Mostrar el título y código de cada libro con su respectivo nombre de encargado y descripción
de género.
SELECT Titulo,CodigoLibro,Nombre,Descripcion
FROM tblLibro INNER JOIN tblEncargado
ON tblLibro.DNIEncargado=tblEncargado.DNI
INNER JOIN tblGenero
ON tblLibro.CodigoGenero=tblGenero.Codigo

Consulta 02: Mostrar la descripción de cada género con la cantidad de libros que tiene. Solo considerar los
libros que se adquirieron este año.
SELECT Descripcion,COUNT(CodigoLibro) AS CantidadLibro
FROM tblGenero INNER JOIN tblLibro
ON tblGenero.Codigo=tblLibro.CodigoGenero
WHERE YEAR(FechaAdquisicion)=2022
GROUP BY Descripcion

Consulta 03: Mostrar el título, nombre de encargado y género del primer libro adquirido.
SELECT TOP 1 Titulo,Nombre,Descripcion,FechaAdquisicion
FROM tblLibro INNER JOIN tblEncargado
ON tblLibro.DNIEncargado=tblEncargado.DNI
INNER JOIN tblGenero
ON tblLibro.CodigoGenero=tblGenero.Codigo
ORDER BY FechaAdquisicion

Consulta 04: Mostrar el título de los libros cuyo título termina en una vocal.
SELECT Titulo
FROM tblLibro
WHERE Titulo LIKE '%a' OR
Titulo LIKE '%e' OR
Titulo LIKE '%i' OR
Titulo LIKE '%o' OR
Titulo LIKE '%u'

Consulta 05: Mostrar el DNI y nombre de cada encargado con la cantidad de libros que tiene a su cargo.
SELECT DNI,Nombre,COUNT(CodigoLibro) AS CantidadLibro
FROM tblEncargado INNER JOIN tblLibro
ON tblEncargado.DNI=tblLibro.DNIEncargado
GROUP BY DNI,Nombre
ORDER BY COUNT(CodigoLibro)

Consulta 06: Mostrar el código y descripción de los géneros que tienen más de 5 libros.
SELECT Codigo,Descripcion,COUNT(CodigoLibro) AS CantidadLibro
FROM tblLibro INNER JOIN tblGenero
ON tblLibro.CodigoGenero=tblGenero.Codigo
GROUP BY Codigo,Descripcion
HAVING COUNT(CodigoLibro)>5

Consulta 07: Mostrar el título, fecha de adquisición y nombre de encargado de los libros registrados entre
abril y septiembre del 2021.
SELECT Titulo,FechaAdquisicion,Nombre
FROM tblLibro INNER JOIN tblEncargado
ON tblLibro.DNIEncargado=tblEncargado.DNI
WHERE YEAR(FechaAdquisicion)=2021 AND (MONTH(FechaAdquisicion)>=4
AND MONTH(FechaAdquisicion)<=9)
Script de creación de la base de datos:

USE master
CREATE DATABASE Biblioteca
GO

USE Biblioteca
CREATE TABLE tblEncargado
(
DNI CHAR(8) PRIMARY KEY,
Nombre VARCHAR(70) NOT NULL
)
GO

INSERT INTO tblEncargado


(DNI,Nombre)
VALUES
('11114444','Cinthya'),
('11114440','Ruby'),
('11110442','Karina'),
('11114499','Merly')

CREATE TABLE tblGenero


(
Codigo TINYINT PRIMARY KEY,
Descripcion VARCHAR(100) NOT NULL
)
GO

INSERT INTO tblGenero


(Codigo,Descripcion)
VALUES
(100,'Ciencia ficción'),
(101,'Novela'),
(102,'Drama'),
(103,'Comedia')

CREATE TABLE tblLibro


(
CodigoLibro CHAR(4) PRIMARY KEY,
Titulo VARCHAR(50) NOT NULL,
FechaAdquisicion DATE NOT NULL,
DNIEncargado CHAR(8) NOT NULL REFERENCES tblEncargado(DNI),
CodigoGenero TINYINT NOT NULL REFERENCES tblGenero(Codigo)
)
GO

SET DATEFORMAT DMY


INSERT INTO tblLibro
(CodigoLibro,Titulo,FechaAdquisicion,DNIEncargado,CodigoGenero)
VALUES
('L001','Karen y sus sueños','05/10/1995','11114444',101),
('L002','El roble','05/11/1998','11110442',100),
('L003','El pez de plata','05/01/2000','11110442',101),
('L004','Sueños en el siglo XXI','15/04/2000','11110442',101),
('L005','La pesca dorada','09/10/1996','11114499',102),
('L006','Visión de futuro','07/10/2000','11110442',103),
('L007','Ladrones y políticos','12/10/2001','11114499',101)

También podría gustarte