Está en la página 1de 3

UNIVERSIDAD DE PIURA

FACULTAD DE INGENIERÍA
CURSO: BASE DE DATOS
PRÁCTICA CALIFICADA Nº 4
Martes, 08 de noviembre de 2022 Hora: 2 p.m.
Duración: 1.40 horas
SIN LIBROS NI APUNTES Nombre: ________________________________________

1. (3p) Describa brevemente para que sirve el parámetro “Group By”. Escriba un ejemplo de consulta
con “Group by”, y describa lo que haría esa consulta.
• Permite el trabajo (aplicar funciones) por grupos o clasificaciones de registros.
• Por ejemplo, si queremos mostrar la cantidad de cursos por cada programa académico:
SELECT programa.nombre, COUNT(curso.nombre)
FROM curso, programa
WHERE curso.Programa_idPrograma=programa.idPrograma
GROUP BY programa.nombre;
2. Describa que es lo que hacen las siguientes consultas (Puede tomar como referencia el modelo de
la pregunta 3)
a) (1p) Select Pa.IdPapeleta, Pa.Fecha, Pe.Nombre Policía, Po.Grado
FROM Papeleta Pa, Policía Po, Persona Pe
Where Pa.IdPolicía=Po.IdPersona AND
Po.IdPerssona=Pe.IdPersona AND
Po.Grado=’Teniente’;
Muestra el IdPapeleta y fecha de papeleta, el nombre (con la etiqueta Policía) y grado de policía
que la puso, de todas la papeletas puestas por tenientes.

b) (1.5p) SELECT Count(Vehículo.*)


FROM Vehículo
WHERE Año=2022 AND Veículo.IdModelo IN
(SELECT Modelo.IdModelo
FROM Modelo
WHERE Modelo.IdMarca IN
(SELECT Marca.IdMarca
FROM Marca
WHERE Marca.País=’Francia’));
Muestra cuantos vehículos hay fabricados este año de las marcas francesas.

c) (1.5p) Select Vehículo.IdVehículo Placa, Vehículo.Color From Vehículo


Where Vehículo.IdPropietario In
(Select Persona.IdPersona
From Persona
Where Persona.Nombre=’Pedro Ruiz) And Vehículo.IdModelo In
(Select Modelo.IdModelo
From Modelo
Where Modelo.Descripción=’Grand Nomade’);
Mostrar la placa y el color de los vehículos cuyo propietario es Juan Ruiz y de modelo Grand
Nomade.

3. SISTEMA DE INFRACCIONES Y PAPELETAS

Notas:
• El IdPropietario de Vehículo es clave foránea de Persona (IdPersona).
• El IdPolicía de Papeleta es clave foránea de Pólicía (IdPersona).
• El IdConductor de Papeleta es clave foránea de Conductor (IdPersona).
• El monto que se tiene que pagar por una papeleta está dado por el tipo de infracción (atributo
monto de TipoInfracción).
• Policía y Conductor tienen relación de herencia con Persona por medio de la clave primaria (a la
vez foránea de IdPersona).
• En Marca, el atributo país se refiere al país donde apareció la empresa de vehículos respectiva.
• El IdVehículo es la placa del vehículo.
• Año del vehículo es su año de fabricación.

Actividad: Resuelva las siguientes consultas con sentencias SQL.


a. (1p) La placa de los vehículos de color rojo que fueron fabricados el presente año.
Select Vehículo.IdVehículo, Vehículo.Color, Vehículo.Año From Vehículo Where Vehículo.Año=2022
AND vehículo.color=’rojo’;

b. (1p) El grado del Policía “Arthur Pacheco”.


Select Policía.grado, Persona.Nombre From Policía, Persona Where
Policía.IdPersona=Persona.IdPersona AND Persona.Nombre=’Arthur Pacheco’;
c. (1p) Las marcas y modelos de los vehículos alemanes.
Select ma.descripción, mo.descripción, ma.país From Marca Ma, Modelo Mo Where
Ma.IdMarca=Mo.IdMarca AND ma.país=Alemania;

d. (1.5p) El nombre y dirección de los conductores que han tenido infracciones por “exceso de velocidad”
en lo que va del año.
Select pe.nombre, pe.dirección From persona pe, conductor co, papeleta pa, tipoinfracción ti Where
pe.idpersona=co.idpersona AND co.idpersona=pa.idconductor AND
pa.idtipoinfracción=ti.idtipoinfracción AND ti.tipo=’exceso de velocidad’ AND pa.fecha>=’2022-01-01’;
e. (1.5p) El nombre, dirección y grado de los policías menores de 40 exactamente que no son generales ni
coroneles.
Select pe.nombre, pe.dirección, po.grado From policía po, persona pe where
po.idpersona=pe.idpersona AND pe.fechanacimiento>=’1982-11-08’ AND po.grado not in (‘general’,
‘coronel’);
f. (1.5p) La cantidad de papeletas de cada tipo de infracción de la semana pasada ordenado de forma
descendente.
Select ti.tipo, count(pa.idpapeleta) from tipoinfracción ti, papeleta pa WHERE
ti.idtipoinfracción=pa.idtipoinfracción AND pa.fecha>=’2022-10-31’ AND pa.fecha<=’2022-11-06’ Group
by ti.tipo order by count(pa.idpapeleta) DESC;
g. (1.5p) Las marcas cuya cantidad de vehículos registrados en el sistema supere las 50 unidades.
Select ma.descripción, count(ve.*) From marca ma, modelo mo, vehículo ve Where
ma.idmarca=mo.idmarca AND mo.idmodelo=ve.idmodelo Group by ma.descripción having
count(ve.*)>50;
h. (2p) Si los policías reciben 5% del monto de cada papeleta que ponen. Mostrar el nombre de los 2 policías
que más comisión recibieron ayer.
Select pe.nombre, po.idpersona, sum(ti.monto*0.05) from persona pe, policía po, papeleta pa,
tipoinfracción ti Where pe.idpersona=po.idpersona AND po.idpersona=pa.idpolicía AND
pa.idtipoinfracción=ti.idtipoinfracción AND pa.fecha=’2022-11-07’ Group by po.idpersona order by
sum(ti.monto*0.05) DESC Limit 2;
i. (2p) Mostrar el nombre y la dirección de los conductores que no han tenido papeletas el presente año,
para premiarlos.
Select pe.nombre, pe.dirección from persona pe, conductor co where co.idpersona not in (Select
pa.idconductor from papeleta pa where pa.fecha>=2022-01-01);

También podría gustarte