Guia de TP 2020 - SQL
Guia de TP 2020 - SQL
CURSO: Tercero
Para desarrollar la primera parte de la presente guía deberá, previamente, realizar las
siguientes tareas:
Descargar del aula virtual de la materia, en la carpeta de material complementario, el
archivo “all_tables mysql.zip” y descomprimirlo.
Conectarse a la base de datos creada en el servidor MySQL instalado en la máquina
virtual provista por la cátedra y ejecutar el script “Creacion database MySql
innodb.sql”.
Realizar la carga de datos a cada tabla creada en el paso anterior con los archivos
de texto con nombres homónimos utilizando LOAD DATA o la herramienta
mysqlimport.
Teniendo la base de datos con datos cargados realizar los siuientes ejercicios:
2. Dados los siguientes esquemas relacionales, resolver mediante SQL las consultas
planteadas:
Student(snum: integer, sname: string, major: string, level: string, age: integer)
Class(name: string, meets at: string, room: string, fid: integer)
Inscripto(snum: integer, cname: string)
Faculty(fid: integer, fname: string, deptid: integer)
1. Encuentre los nombres de todos los estudiantes Juniors (level = JR) que estén
inscriptos en una clase dictada por I. Teach.
2. Encuentre los nombres de todas clases que cumpla estar en el aula R128 o tenga más
de 5 estudiantes inscriptos.
3. Encuentre los nombres de todos estudiantes que estan inscriptos en dos clases que
comiencen a la mismo hora.
4. Encuentre los nombres de miembros de la facultad que hay en cada aula en la cual se
dicta alguna clase.
5. Encuentre los nombres de los miembros de la facultad para quienes la inscripción
combinada de los cursos que enseñan es menos de cinco.
6. Para cada nivel, liste los niveles y los promedios de edad de los estudiantes para ese
nivel.
7. Para todos los niveles excepto JR, liste el nivel y los promedios de edad de estudiantes
para dicho nivel.
8. Para cada miembro de la facultad que toma clases en el aula R128, liste los nombres
de los miembros de la facultad y el total de clases que toma.
9. Encuentre los nombres de estudiantes inscriptos en para el máximo nro. de clases.
10. Encuentre los nombres de estudiantes no inscriptos in ninguna clase.
11. Para cada valor de la edad que aparezca en estudiantes, encuentre el valor del nivel
que más se repite. Por ejemplo, si hay más estudiantes del nivel del FR con 18 años
que en los niveles SR, JR, o SO, usted debe imprimir el par (18, FR).
Año 2020 Página 2
Universidad de la Cuenca del Plata Base de Datos
Ingeniería en Sistemas de Información
CONSULTAS MULTITABLA
1.27. Listar los clientes cuyas direcciones principales estén sobre calles que empiecen con A
(tener en cuenta el formato de dirección cargado), indicando nombre, domicilio y teléfono. Hacer
una versión en la que aparezcan sólo los que tienen teléfono, y hacer otra en la que aparezca sólo
los clientes con domicilio en calles que empiecen con A y que no tienen ningún teléfono.
1.28. Listar los alquileres mostrando dia, nombre del cliente, título de la película y el nombre
del empleado que atendió.
1.29. Listar los alquileres, la cantidad días que estuvo prestada la película y el monto pagado.
1.30. Listar los alquileres y los nombres de clientes que pagaron más de 250 en total.
1.31. Listar los clientes que fueron atendidos alguna vez por el empleado “Jon Stephens”.
1.32. Listar los clientes que realizaron más de un alquiler el mismo día.
1.33. Listar los nombres de los empleados y la cantidad de pagos que atendieron para
aquellos con un monto mayor a 5.
1.34. Crear una vista que liste la cantidad total de alquileres por categoría de películas.
1.35. Listar las películas en las que actuó alguna vez la actriz “JENNIFER DAVIS”.
1.36. Listar los códigos de clientes que hayan alquilado más de 50 películas distintas.
1.37. Listar los nombres de clientes que alquilaron películas en 2004 pero no lo hicieron en
2005.
1.38. Listar los empleados (código, nombre y apellido) que atendieron más de 10 alquileres y
por los que el monto total cobrado fue más de 50.
1.39. Listar los actores que actuaron en más de 5 películas las cuales están clasificadas en al
menos 2 categorías distintas.
1.40. Listar el nombre, apellido y código de aquellos clientes que se han retrasado en la
devolución más de un 40% de las veces que alquilaron.
1.41. Crear una vista que liste las películas que tienen disponibles (sin alquilar) más del 20%
de sus existencias (en la tabla inventory).
1.42. Crear una vista que liste el nombre y el código de aquellos clientes que hayan alquilado
el día en que se registró la mayor cantidad de alquileres.
1.43. Listar el código y nombre de los clientes que hayan hecho alquileres en la fecha más
antigua registrada.
1.44. Listar los clientes que alquilaron entre los años 2005 y en el 2006.
1.45. Listar las películas que tienen menos de 5 ejemplare en existencia y que han generado
ingresos totales por más de 200.
1.46. Listar los nombres y códigos de clientes que alquilaron todas las películas de acción
(categoría “Action”).
1.47. Listar los empleados que atendieron alquileres de todas las categorías de películas.