Práctica SQL
Práctica SQL
Práctica SQL
DEPARTAMENTO DE INGENIERÍA
E INVESTIGACIONES TECNOLÓGICAS
INGENIERIA EN INFORMATICA
BASE DE DATOS
Práctica de Ejercicios de SQL
Jefe de Cátedra: Ing. Verónica Ichazo
2017
Cátedra de Base de Datos UNLaM
EJERCICIO 1
EJERCICIO 2
EJERCICIO 3
EJERCICIO 4
EJERCICIO 5
1. Listar los clientes que no hayan reportado préstamos del rubro “Policial”.
2. Listar las películas de mayor duración que alguna vez fueron prestadas.
3. Listar los clientes que tienen más de un préstamo sobre la misma película (listar
Cliente, Película y cantidad de préstamos).
4. Listar los clientes que han realizado préstamos del título “Rey León” y “Terminador
3” (Ambos).
5. Listar las películas más vistas en cada mes (Mes, Película, Cantidad de
Alquileres).
6. Listar los clientes que hayan alquilado todas las películas del video.
7. Listar las películas que no han registrado ningún préstamo a la fecha.
8. Listar los clientes que no han efectuado la devolución de ejemplares.
9. Listar los títulos de las películas que tienen la mayor cantidad de préstamos.
10. Listar las películas que tienen todos los ejemplares prestados.
EJERCICIO 6
EJERCICIO 7
1. Indique cuales son los autos con mayor cantidad de kilómetros realizados en el
último mes.
2. Indique los clientes que más viajes hayan realizado con el mismo chofer.
3. Indique el o los clientes con mayor cantidad de viajes en este año.
4. Obtenga nombre y apellido de los choferes que no manejaron todos los vehículos
que disponemos.
5. Obtenga el nombre y apellido de los clientes que hayan viajado en todos nuestros
autos.
6. Queremos conocer el tiempo de espera promedio de los viajes de los últimos 2
meses
7. Indique los kilómetros realizados en viajes por cada auto.
8. Indique el costo promedio de los viajes realizados por cada auto.
9. Indique el costo total de los viajes realizados por cada chofer en el último mes.
10. Indique la fecha inicial, el chofer y el cliente que hayan realizado el viaje más largo
de este año.
EJERCICIO 8
EJERCICIO 9
1. Hallar para una persona dada, por ejemplo José Pérez, los tipos y números de
documentos, nombres, dirección y fecha de nacimiento de todos sus hijos.
2. Hallar para cada persona los tipos y números de documento, nombre, domicilio y
fecha de nacimiento de:
a. Todos sus hermanos, incluyendo medios hermanos.
b. Su madre
c. Su abuelo materno
d. Todos sus nietos
EJERCICIO 10
Nota: El ambiente podrá ser Desarrollo, Testing o Producción. La función date() devuelve la fecha actual.
Si se resta un valor entero a la función, restará días. El ejercicio consiste en indicar qué enunciado dio
origen a cada una de las consultas:
1)
Select P.IP, count(distinct fecha), count(distinct IDMetodo),
max(fecha)
From Page P Inner join Request R on P.IP=R.IP
Group by P.IP
2)
Select *
From Ambiente A
Where id not in
(Select idambiente
From Page P
Where not exists (
Select 1 From Request R
Where R.IP=P.IP and fecha>= date()-7))
3)
Select Fecha, count(*)
From Request R
Where hora between ‘00:00’ and ‘04:00’
and not exists(
select 1 from Page P
inner join Ambiente A on P.IDAmbiente = A.ID
where R.IP=P.IP AND A.Descripcion=’Desarrollo’ )
Group by fecha
Having count(*) >= 10
4)
Select W.WebPage, A.Descripcion, max(R.fecha), ‘S’
From Request R
Inner join WebPage W on R.IP=W.IP
Inner join Ambiente A on A.id=W.IDAmbiente
Where R.Fecha>=date()-7 and W.Webpage like ‘www%’
Group by W.WebPage, A.Descripcion
Having count(distinct fecha)>=7
5)
Select W.WebPage, A.Descripcion,
max(case when R2.fecha is null then ‘01/01/1900’ else R2.fecha
end), ‘N’
From WebPage W Left join (
Select IP, max(fecha)From Request R
Group by IP )
R2 on R2.IP = W.IP
Where W.Webpage like ‘ftp%’ and
not exists (
Select 1
from Request R
where R.IP=W.IP and R.Fecha>=date()-7
group by R.IP
having count(*)>=7)
Group by W.WebPage, A.Descripcion
6)
insert into Page
select IP, ‘Web ‘ + IDMetodo, ‘?’
from request R
where not exists (
Select 1 from Page P
where R.IP=P.IP )
and IDMetodo in (select ID from Metodo)
and fecha>=date()-30
EJERCICIO 11
1. Realice las sentencias DDL necesarias para crear en SQL una base de datos
correspondiente al modelo relacional del enunciado.
2. Realice los INSERTs necesarios para cargar en las tablas creadas en el punto
anterior los datos de 5 clientes, 10 peliculas (y tablas relacionadas a estas) y al
menos 15 alquileres.
3. Agregue el atributo “año” en la tabla Película.
4. Actualice la tabla película para que incluya el año de lanzamiento de las películas
en stock.
5. Queremos que al momento de eliminar una película se eliminen todos los
ejemplares de la misma. Realice una CONSTRAINT para esta tarea.
6. Queremos que exista un borrado de lógico y no físico de clientes, realice un
TRIGGER que usando el atributo “Borrado” haga esta tarea.
7. Elimine las películas de las que no se hayan alquilado ninguna copia.
8. Elimine los clientes sin alquileres.
EJERCICIO 12
01/08/2009 100 8 3
03/08/2009 53 50 7
04/08/2009 50 20 40
EJERCICIO 13
3. v_Listado: Realizar una vista que permita listar las métricas en las cuales se
hayan realizado, en la última semana, mediciones para todos los niveles
existentes. El resultado del listado deberá mostrar, el nombre de la métrica que
respete la condición enunciada, el máximo nivel de temperatura de la última
semana y la cantidad de mediciones realizadas también en la última semana.
5. p_InsertMedicion(fecha,hora, metrica,temp,presion,hum,niv):
Realizar un procedimiento que permita agregar una nueva medición en su
respectiva entidad. Los parámetros deberán ser validados según:
a. Para una nueva fecha hora, no puede haber más de una medida por
métrica
b. El valor de humedad sólo podrá efectuarse entre 0 y 100.
c. El campo nivel deberá ser válido, según su correspondiente entidad.
EJERCICIO 14