Documentos de Académico
Documentos de Profesional
Documentos de Cultura
David Cantón Entrega
David Cantón Entrega
SELECT *
FROM libro
2.- Recuperar sólo algunos atributos de una tabla: recuperar el título y autor de todos los
libros.
FROM libro
3.- Proyección (consultas sin duplicados): recuperar todos los autores distintos de la base de
datos.
SELECT DISTINCT(libro_aut)
FROM libro
4.- . Ordenar resultados de una selección: recuperar título y autor de todos los libros
ordenando el resultado por autor (en orden alfabético inverso) y título.
FROM libro
5. Uso de expresiones calculadas en las consultas: para cada préstamo, recuperar el número de
ejemplar, el código del socio y el número de días que ha tardado en devolverlo, ordenando el
resultado por el Código del socio y el número de días.
FROM prest
6. Seleccionar registros de una tabla por condición (cláusula WHERE): recuperar el título de
todos los libros cuyo autor es Date.
FROM prest
7. Seleccionar registros de una tabla por condición (cláusula WHERE): recuperar nombre y
apellidos de los socios que viven en Barcelona o Girona i que se han dado de alta durante el
año 1993.
FROM socio
8. Seleccionar registros de una tabla por condición (cláusula WHERE): recuperar el número de
ejemplar y el código de socio de todos los préstamos hechos en el año 1998 y que todavía no
han sido devueltos.
FROM prest
9. Seleccionar registros de una tabla por condición (cláusula WHERE): recuperar todos los
libros que contienen la expresión ‘Bases de Datos’ en el título.
SELECT libro_tit
FROM libro
10. Seleccionar registros de una tabla por condición (cláusula WHERE): recuperar el número de
ejemplar y el código de socio de todos los préstamos hechos en el año 1998 y que o bien ha
sido devueltos fuera de plazo o bien todavía no se han devuelto y ya están fuera de plazo.
CONSULTAS DE VARIAS TABLAS
FROM prest
11. Combinar información de más de una tabla (unión relacional [join]): recuperar todos los
temas en los que están clasificados los libros escritos por Date.
SELECT distinct(tema_tem)
FROM libro
WHERE libro_aut='Date')
12. Combinar información de más de una tabla (unión relacional [join]): recuperar los
préstamos no devueltos, mostrando el código del libro, y el nombre y apellidos del socio,
ordenando el resultado por apellidos y nombre del socio.
ON p.socio_cod = s.socio_cod
13. Combinar información de más de una tabla (unión relacional [join]): recuperar el nombre y
apellido de los socios que durante el año 1997 han tomado en préstamo alguno de los libros
escritos por Date.
14. Combinar información de una tabla consigo misma (unión relacional [join] de una misma
tabla): recuperar el código de los libros que están clasificados en alguno de los temas a los que
pertenece el libro con código 1. FUNCIONES DE AGREGACIÓN
SELECT l1.libro_cod
FROM libro l1
l1.libro_cod=l2.librocod
JOIN tema_libro tl on
Tl.libro_cod=l2.libro_cod
15. Funciones para calcular totales (recuentos) y promedios: recuperar el total de libros
escritos por Date y el promedio de ediciones que ha habido de estos libros.
FROM libro
WHERE libro_aut='Date'
16. Funciones para calcular estadísticos descriptivos: recuperar el número de días del
préstamo más largo del año 1997.
FROM prest
WHERE extract (year FROM prest_dev)=1997 AND extract (year FROM prest_ini)=1997
17. Funciones para calcular totales (recuentos) y promedios: recuperar el total de libros que
hay en la biblioteca, el número de ejemplares y el promedio de ejemplares por libro.
FROM ejemp
18. Funciones para calcular totales (suma) y promedios: recuperar el total de préstamos
realizados en el año 1997, el número de préstamos devueltos y el número de préstamos no
devueltos. FUNCIONES DE AGREGACIÓN POR GRUPOS
FROM prest pi
(SELECT prest_dev
19. Funciones para calcular estadísticos de grupo: recuperar, para cada socio, el número de
libros que ha tomado en préstamo.
GROUP BY socio_nom
20. Funciones para calcular estadísticos de grupo: recuperar el número de libros distintos que
ha tomado cada socio en préstamo.
SELECT COUNT(socio_cod), socio_cod
FROM prest
GROUP BY socio_cod
21. Funciones para calcular estadísticos de grupo: recuperar el número de días que ha estado
cada libro en préstamo.
ej.libro_cod
from prest as pr
join ejemp as ej on
ej.ejemp_num=pr.ejemp_num
group by ej.libro_cod
22. Funciones para calcular estadísticos de grupo: recuperar el número de ejemplares de cada
uno de los libros editados por Addison-Weley. Se quiere recuperar el título, idioma, autor i
número de ejemplares del libro, ordenado por número de ejemplares y autor.
WHERE libro_edi='Addison-Wesley'
23. Funciones para calcular estadísticos de grupo con condiciones sobre el resultado:
recuperar el código de los socios que han tomado más de un libro en préstamo durante el año
1997.
SELECT p.socio_cOD
FROM prest p
WHERE extract(year from prest_ini)=1997) p
GROUP BY p.socio_cod
24. Funciones para calcular estadísticos de grupo con condiciones sobre el resultado: recuperar
el código de los libros que pertenecen a más de un tema.
SELECT libro_cod
FROM tema_libro
GROUP by libro_cod
HAVING COUNT(libro_cod)>=2
25. Funciones para calcular estadísticos de grupo con condiciones sobre el resultado: para
todos los autores que han publicado más de 1 libro, recuperar el total de ejemplares que hay
en la biblioteca de todos sus libros, ordenar el resultado por número de ejemplares y autor.
SELECT COUNT(ejemp_num)
FROM libro
GROUP BY libro_aut
HAVING COUNT(libro_aut)>=2)
26. Funciones para calcular estadísticos de grupo con condiciones sobre el resultado: recuperar
el número total de préstamos que han hecho los socios que han tomado algún libro en
préstamo durante el año 1998.
FROM prest
GROUP BY socio_cod