Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

UNIVERSIDAD DE LA CUENCA DEL PLATA

FACULTAD: INGENIERÍA Y TECNOLOGÍA

CARRERA: INGENIERÍA EN SISTEMAS DE INFORMACIÓN

CÁTEDRA: BASE DE DATOS

DOCENTE: I.S.I. Juan Carlos Fernández

AÑO LECTIVO: 2020 CUATRIMESTRE: Segundo

CURSO: Tercero

MODALIDAD DE CURSADO: Cuatrimestral

Guía de ejercicios N.º 4: SQL


Universidad de la Cuenca del Plata Base de Datos
Ingeniería en Sistemas de Información

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:

1. Resolver los ejercicios 3 y 4 de la guía de algebra relacional mediante consultas SQL.

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

Emp(eid: integer, ename: string, age: integer, salary: real)


Works(eid: integer, did: integer, pct time: integer)
Dept(did: integer, dname: string, budget: real, managerid: integer)
1. Liste los nombres y las edades de cada employee que trabajan en los departamentos
de Hardware y Software.
2. Encuentre los managerids de los gerentes que administran solo departmentos con
presupuesto mayor a $1.000.000.
3. Encuentre los enames de los gerentes que administran los departamentos con los
mayores presupuestos. Si un gerente administra más de un depto. se debe sumar sus
presupuestos.
4. Encuentre los managerids de los genretes que controlan mas de $5.000.000.
5. Encuentre los managerids de los gerentes que controlan los mayores presupuestos.
6. Encuentre los enames de los gerentes que administran solo departmentos con
presupuestos de más de $1.000.000, pero al menos un depto. tiene presupuesto
menor a $5.000.000.

Para la segunda parte deberá descargar y descomprimir el archivo sakila-db.zip disponible


en el material de cátedra. Mediante terminal ejecutar en la máquina virtual los scripts sakila-
schema.sql y sakila-data.sql, para crear y cargar con datos la base de datos de ejemplo
sakila. En el mismo archivo tiene disponible el archivo sakila.mwb con el esquema gráfico
de tablas, que le puede servir como guía para analizar la resolución de las consultas.

1. En SQL responda los siguientes requerimientos:


CONSULTAS BÁSICAS
1.1. Inserte un nuevo cliente.
1.2. Agregue un nuevo empleado a la base.
1.3. Inserte los datos de un cliente existente (nombre y apellido) pero con un nuevo
código (customer_id).
1.4. Borre todos los registros de la tabla pelicula_actor e inserte para todas las películas
cargadas un registro asociándola con el actor con el menor id (actor_id).
1.5. Actualice el actor relacionado a una de las películas por el id de la actriz
“JENNIFER DAVIS”.
1.6. Actualice la fecha de un alquiler que usted seleccione por 23/12/2004.
1.7. Debe realizarse un descuento del 10% en los pagos que fueron hechos el mismo
día del alquiler.
1.8. Actualice el código de empleado de los alquileres que tengan asignado al empleado
1 por el empleado 3.
1.9. Borre todos los alquileres anteriores al 30/05/2005.
1.10. Elimine a todos los empleados que no tengan cargado su email.
Año 2020 Página 3
Universidad de la Cuenca del Plata Base de Datos
Ingeniería en Sistemas de Información

1.11. Obtenga un listado de todos los empleados de nombre Jon.


1.12. Se desea obtener la cantidad de alquileres con fecha mayor a 30/06/2005.
1.13. Se necesita conocer la cantidad total de alquileres de cada película.
1.14. Liste todos los alquileres hechos entre el 20/12/2005 y el 10/01/2006.
1.15. Muestre los alquileres en los cuales la fecha de devolución (return_date) es mayor a
2 días de la fecha de alquiler (rental_date).
1.16. Obtenga la cantidad de clientes diferentes que alquilaron películas después del
31/01/2006.
1.17. Insertar un nuevo empleado con el número inmediato consecutivo al máximo
existente.
1.18. Insertar una nueva categoría con el número inmediato consecutivo al máximo
existente sin utilizar la función MAX.
1.19. Insertar los datos de la tabla cliente en una nueva tabla, borre los datos de la tabla
cliente. En la nueva tabla realice una actualización de los códigos de cliente
incrementándolos en uno. Posteriormente reinsértelos en la tabla cliente y vuelva a la
normalidad los códigos.
1.20. Las compañías telefónicas han decidido (por falta de números telefónicos!!), que
todas las líneas deben agregar un 9 como primer número. Realice la actualización
correspondiente en los teléfonos (phone) registrados para cada dirección (address).
1.21. Debido a una promoción, se incrementa en dos los días de alquiler (rental_duration)
de las películas con una calificación (rental_rate) menor a 10.
1.22. Obtener los datos del último alquiler existente
1.23. Obtener los apellidos de los empleados que se encuentren repetidos.
1.24. Obtener un listado con la cantidad de alquileres por fecha.
1.25. Obtener el promedio de días que las películas tardan en devolverse (diferencia
entre fecha de devolución y fecha de alquiler). Cree una vista con esta consulta que se
llame vw_promedio_dias.
1.26. Obtener los empleados que hayan cobrado más de 10 pagos. Cree una vista con
esta consulta que se llame vw_empleados_pagos.

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.

Año 2020 Página 4


Universidad de la Cuenca del Plata Base de Datos
Ingeniería en Sistemas de Información

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.

CONSULTAS ANIDADAS – SUBCONSULTAS; Los ejercicios que se proponen a continuación se


pueden resolver de varias maneras, intente resolverlos utilizando subconsultas ya que de eso trata
el tema, además un mismo ejercicio lo puede intentar resolver de diferentes maneras utilizando
distintos tipos de condiciones, así un ejercicio se puede convertir en dos o tres ejercicios.

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.

Año 2020 Página 5

También podría gustarte