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

Entradas relacionadas: