CONSULTAS BÁSICAS
Estas sirven para obtener información general de las tablas.
1. Mostrar todos los libros disponibles
SELECT * FROM libros;
2. Mostrar los nombres de los socios registrados
SELECT Nombre FROM socios;
3. Listar los autores y su nacionalidad
SELECT [Link] AS Autor, [Link] AS Pais
FROM autor a
JOIN paises p ON [Link] = [Link];
4. Mostrar los nombres de los géneros literarios
SELECT Nombre FROM genero;
5. Consultar las editoriales disponibles
SELECT Nombre, Dirección FROM editorial;
CONSULTAS INTERMEDIAS
Aquí se usan JOIN, filtros y funciones básicas.
6. Mostrar los títulos de los libros junto con su autor y editorial
SELECT [Link], [Link] AS Autor, [Link] AS Editorial
FROM libros l
JOIN autor a ON [Link] = [Link]
JOIN editorial e ON [Link] = [Link];
7. Libros publicados después del año 1980
SELECT Titulo, Año FROM libros WHERE Año > 1980;
8. Socios nacidos después del año 2000
SELECT Nombre, Fecha_Nacimiento FROM socios WHERE Fecha_Nacimiento >
'2000-01-01';
9. Mostrar los préstamos activos (fecha de entrega futura)
SELECT [Link], [Link] AS Socio, [Link], p.Fecha_Salida,
p.Fecha_Entrega
FROM prestamos p
JOIN socios s ON [Link] = [Link]
JOIN libros l ON [Link] = [Link]
WHERE p.Fecha_Entrega >= CURDATE();
10. Contar cuántos libros tiene cada editorial
SELECT [Link] AS Editorial, COUNT([Link]) AS Total_Libros
FROM editorial e
LEFT JOIN libros l ON [Link] = [Link]
GROUP BY [Link];
CONSULTAS AVANZADAS
Usan subconsultas, agrupamientos y funciones más complejas.
11. Mostrar los libros con más de 300 páginas
SELECT Titulo, Canti_Pag FROM libros WHERE Canti_Pag > 300;
12. Encontrar los autores que han publicado con la editorial "Planeta"
SELECT DISTINCT [Link]
FROM autor a
JOIN libros l ON [Link] = [Link]
JOIN editorial e ON [Link] = [Link]
WHERE [Link] = 'Planeta';
13. Calcular la edad de los socios
SELECT Nombre, TIMESTAMPDIFF(YEAR, Fecha_Nacimiento, CURDATE()) AS Edad
FROM socios;
14. Listar los préstamos con el número de días entre salida y entrega
SELECT [Link], [Link], [Link] AS Socio,
DATEDIFF(p.Fecha_Entrega, p.Fecha_Salida) AS Duracion_Dias
FROM prestamos p
JOIN libros l ON [Link] = [Link]
JOIN socios s ON [Link] = [Link];
15. Mostrar los libros que pertenecen al género "Realismo mágico"
SELECT Titulo
FROM libros l
JOIN genero g ON [Link] = [Link]
WHERE [Link] = 'Realismo mágico';
16. Autores nacidos antes de 1950
SELECT Nombre, Fecha_Nac FROM autor WHERE Fecha_Nac < '1950-01-01';
17. Países que tienen al menos un autor
SELECT DISTINCT [Link]
FROM paises p
JOIN autor a ON [Link] = [Link];
18. Mostrar cuántos préstamos ha hecho cada socio
SELECT [Link], COUNT([Link]) AS Total_Prestamos
FROM socios s
LEFT JOIN prestamos p ON [Link] = [Link]
GROUP BY [Link];
CONSULTAS DE MODIFICACIÓN (INSERT,
UPDATE, DELETE)
19. Agregar un nuevo socio
INSERT INTO socios (Nombre, Dirección, Telefono, Fecha_Nacimiento)
VALUES ('Lucía Méndez', 'Calle 30 #12-11', '3106548795', '2004-05-18');
20. Actualizar el teléfono de un socio
UPDATE socios SET Telefono = '3119998888' WHERE Nombre = 'Laura Gómez';
21. Eliminar un préstamo por su código
DELETE FROM prestamos WHERE Codigo = 2;
22. Cambiar el género de un libro
UPDATE libros SET Genero = 3 WHERE Titulo = 'El Aleph';
23. Insertar un nuevo libro
INSERT INTO libros (Titulo, Autor, Año, Canti_Pag, Portada, Editorial,
Genero)
VALUES ('La casa de los espíritus', 3, 1982, 481, '[Link]', 2, 1);
CONSULTAS DE ADMINISTRACIÓN
24. Mostrar las bases de datos disponibles
SHOW DATABASES;
25. Ver las tablas dentro de la base "biblioteca"
SHOW TABLES;
26. Mostrar la estructura de la tabla "libros"
DESCRIBE libros;
27. Contar cuántos libros hay en total
SELECT COUNT(*) AS Total_Libros FROM libros;
28. Ver los nombres de todos los autores y el país ordenados
alfabéticamente
SELECT [Link] AS Autor, [Link] AS Pais
FROM autor a
JOIN paises p ON [Link] = [Link]
ORDER BY [Link] ASC;