Consultas SQL Esenciales para Gestión de Bibliotecas: Ejemplos Prácticos
Clasificado en Inglés
Escrito el en español con un tamaño de 4,06 KB
Consultas SQL Esenciales para la Gestión de Bibliotecas
Este documento presenta una serie de consultas SQL prácticas, diseñadas para resolver problemas comunes en la gestión de una base de datos de biblioteca. Cada sección incluye la descripción del problema y la consulta SQL correspondiente.
1. Libros con Precio por Página Superior al Promedio Global
Problema: Listar aquellos libros cuyo precio por página supera el precio por página global de la biblioteca.
select l.titulo
from libros l,
(select sum(l.PrecioCompra)/sum(l.NumeroPaginas)As global
from libros l)As subconsulta
where l.PrecioCompra/l.NumeroPaginas > subconsulta.global
2. Materia con Mayor Recaudación por Préstamos
Problema: Por cada préstamo se recaudan dos euros. Listar la materia en la que más se ha recaudado.
select top 1 l.CodigoMateria
from libros l, prestamos p
where l.Signatura = p.Signatura
group by l.Signatura
order by count (*Listar el nombre de la materia de la que más autores escriben siempre que estos tengan al menos dos préstamos.
3. Editorial con el Libro de Menor Precio por Página
Problema: Listar el nombre de la editorial que tiene el libro con el menor precio por página.
select top 1 e.NombreEditorial, (l.PrecioCompra/l.NumeroPaginas)
from editorial e,libros l
where l.CodigoEditorial= e.CodigoEditorial
order by (l.PrecioCompra/l.NumeroPaginas)
4. Materia con Más Autores
Problema: Listar la materia sobre la que más autores han escrito.
select top 1 count(*), m.NombreMateria
from (select distinct l.CodigoAutor as aut, l.CodigoMateria as mat
from libros l) as sub, materias m
where m.CodigoMateria = sub.mat
group by m.NombreMateria
order by count(*) desc
5. Editorial con Más Préstamos
Problema: Listar la editorial con más préstamos.
select top 1 e.CodigoEditorial
from editorial e, prestamos p, libros l
where e.CodigoEditorial=l.CodigoEditorial and p.Signatura = l.Signatura
group by e.CodigoEditorial
order by count(*) desc
6. Materia con Mayor Gasto Total
Problema: Listar la materia en la que más se ha gastado.
Opción 1: Usando Subconsulta para Precios Distintos
select top 1 m.NombreMateria, sum(sub.prec)
from materias m,(select distinct l.PrecioCompra as prec, l.CodigoMateria as mat
from libros l)as sub
where m.CodigoMateria=sub.mat
group by m.NombreMateria
order by sum(sub.prec)desc
Opción 2: Suma Directa de Precios de Compra
select top 1 m.NombreMateria, sum(l.PrecioCompra)
from materias m,libros l
where l.CodigoMateria=m.CodigoMateria
group by m.NombreMateria
order by sum(l.PrecioCompra)desc
7. Autores con al Menos Tres Préstamos
Problema: Listar los autores con al menos tres préstamos de sus libros.
select a.NombreAutor
from autores a,(select distinct l.Signatura, l.CodigoAutor as aut
from libros l, prestamos p
where p.Signatura=l.Signatura)as sub
where a.CodigoAutor=sub.aut
group by a.NombreAutor
order by count(sub.aut)>=3
8. Parejas Socio/Autor con Préstamos Asociados
Problema: Parejas Socio/Autor donde el socio ha tomado al menos un libro de dicho autor.
select a.NombreAutor, s.NombreSocio
from autores a,socios s, libros l, prestamos p
where a.CodigoAutor=l.CodigoAutor and s.NumeroSocio= p.NumeroSocio and l.Signatura =p.Signatura
9. Autor que Publica Más Materias
Problema: Nombre del autor que publica más materias.
select top 1 a.NombreAutor
from autores a, (select distinct l.CodigoAutor as aut, l.CodigoMateria
from libros l) as sub
where a.CodigoAutor=sub.aut
group by a.NombreAutor, a.CodigoAutor
order by count (*) desc