You are on page 1of 5

Bases de Datos – Año 2012

Práctico Nº 4 SQL
Ejercicio 1: Deportes
PERS (Personas) = {Dni, Nom, Sexo, Edad, Dir, Tel, Zona}
DEPO (Deportes) = {Codd, Nomd, Clase}
CLUB (Clubes) = {Codc, Nomc, Dir, Tel, Cat, Zona}
PRAC (Practican) = {Dni, Codd, Codc}

a) Resuelva las consultas planteadas usando el lenguaje SQL.


1. Obtener el nombre de las personas que practican (simultáneamente) los deportes D01, D22 y D10 (códigos).
2. Obtener el nombre de las personas que no practican deportes en Ausonia.
3. Obtener el DNI de las personas que practican deportes en Ausonia o bien practican en la UVT.
4. Obtener el código de los deportes que son practicados solamente por hombres.
5. Obtener nombre y dirección de las personas que viven en la misma zona que Juan Pérez, DNI 20.498.425.
6. Obtener el nombre de las personas mayores que Ana García (DNI: 18.498.425).
7. Obtener el nombre de las personas que practican en clubes que están ubicados en la misma zona en la que ellos
viven.
8. Obtener el nombre de las personas junto al nombre del deporte que práctica. Se deben incluir todas las
personas registradas mas allá que no estén practicando ningún deporte.
9. Obtener el nombre de los deportes practicados en todos los clubes.
10. Obtener los clubes (todos sus datos) en los que se practican todos los deportes de balón (clase).
11. Obtener las personas (todos sus datos personales) que practican todos los deportes.
12. Obtener el nombre de las personas que practican todos los deportes que se practican en el Banco Hispano.

b) Sobre el esquema de base de dato planteado en el Ejercicio 1 - Deportes enuncie las consultas en SQL para
actualizarla:
1) Inserte nuevas Personas (deportista) con los siguientes datos:
< 14895399, Perez Edgar, M, 35, Hipólito Irigoyen 528, 4222935, Rawson >
< 24835599, González Rosa, F, 50, Hipólito Irigoyen 528, 4229115, Rivadavia >
< 34895399, Fernández Luis, M, 28, Hipólito Irigoyen 528, 4293538, Santa Lucia >
< 17895399, Ruiz Analia, F, 18, Hipólito Irigoyen 528, 4258912, Pósito >
2) Inserte el nuevo deporte con los siguientes datos:
< d99 , Tenis , terrestre >
3) Inserte el nuevo club con los siguientes datos:
< c99, Universidad, 25 de Mayo, 4311425, cat, Capital >
4) Inserte la nueva tupla para practica con los siguientes datos:
< 14895399, d99, c99 >
5) Actualice el teléfono del Club UVT por el número 4312548.
6) Elimine el Deporte “Tenis”, controle si le permite realizar el borrado de la tupla.

c) Sobre el esquema de base de dato planteado en el Ejercicio 1 - Deportes realice las siguientes vistas:
1) Una Vista llamada Atletas que tenga los siguientes atributos dni, nombre, sexo, edad.
2) Una Vista llamada Futbolistas que tenga los siguientes atributos dni, nombre, edad y tel.
Bases de Datos – Año 2012
Ejercicio 2: Esquema HR (Recursos Humanos)
Cuando se realiza la instalación de la Base de Datos de Oracle, por defecto se crean esquemas de ejemplo, para
poder realizar pruebas. Uno de ellos es el esquema HR que trata de Recursos Humanos, a continuación se muestra
el esquema HR.

Ahora resuelva las siguientes consultas planteadas usando el lenguaje SQL.

1. Mostrar el nombre (first_name y last_name) y el salario (salary) de todos los empleados. Cambie el nombre de
la columna first_name a Nombre y last_name a Apellido y salary a Salario.
2. Mostrar el nombre (first_name y last_name) y el salario (salary) de todos los empleados ordenado
alfabéticamente por apellido (last_name).
3. Mostrar el apellido (last_name) y la Comisión (commission_pct) que perciben los empleados cuya comisión sea
mayor a 0.25. Mostrarlos ordenado en forma descendente por last_name.
4. Mostrar la cantidad de empleados que trabajan en el departamento 100.
5. Mostrar todos los datos de los departamentos con identificador 10 ó 70 (department_id).
6. Mostrar el nombre (last_name) de los empleados junto al nombre del departamento (department_name)
donde trabajan.
7. Mostrar el nombre (last_name) de los empleados de los departamentos de Finanzas (Finance) y/o Transporte
(Shipping).
8. Mostrar sin repetir los tipos de trabajos (jobs) que realizan en los departamentos los empleados. Liste el el
identificador del departamento y el nombre del trabajo.
9. Mostrar los departamentos en los que los empleados realizan trabajos de Contabilidad (Accountant) y Asistente
de Administración (Administration Assistant). Liste el identificador del departamento y el nombre del trabajo.
NOTA: En este caso no hay tuplas que satisfagan la intersección.
10. Mostrar el nombre de los departamentos que tienen al menos 3 empleados.
11. Mostrar el nombre de los empleados (last_name) y el salario (salary) de aquellos empleados que tienen un
salario mayor que el salario promedio. Ordene el listado en forma descendente por salario.
12. Mostrar el salario máximo de los empleados del departamento 110. Ordene el listado en forma ascendente por
salario.
13. Mostrar el nombre del/de los empleados que tienen el sueldo máximo del departamento 110. Ordene el listado
en forma ascendente por salario.
14. Busque todos los empleados que no sean supervisores (o directores). Nota: En la tabla departments el atributo
manager_id tiene la identificación de los supervisores de cada dpto.
Bases de Datos – Año 2012
Ejercicio 3: Obras Civiles
El gobierno de la provincia ha programado la construcción de varias obras civiles, para administrar la información
relativa a esta temática cuenta con una base de datos formada por las siguientes tablas:
O (Obras) = {Co, Desc, Direc, Zona, EmpCon}
M (Materiales) = {Cm, Desc, Precio}
F (Ferreterías) = {Cuit, Nom, Direc, Zona, Tel}
P (Pedidos) = {Co, Cm, Cuit, Fecha, Cant}
a) Definición de la estructura.
1. Crear las tablas correspondientes, especificando clave primaria y foránea.
2. Inserte las tuplas necesarias en cada relación creada para luego poder realizar las consultas que se le solicitan.

b) Resolver las consultas planteadas usando el lenguaje SQL.


1. Mostrar los materiales (descripción) pedidos el día 06/06/2010.
2. Mostrar para cada obra (indicando descripción) todos los materiales solicitados (descripción). Deben informarse
todas las obras, más allá que aún no tenga materiales pedidos.
3. Mostrar la cantidad total de bolsas de cal que han sido pedidas a la ferretería MR S.A.
4. Mostrar la cantidad total de obras que han pedido materiales a la ferretería MR S.A.
5. Mostrar, para cada material pedido a alguna ferretería, el código de mate rial, código de obra y la cantidad total
pedida (independientemente de la ferretería).
6. Mostrar la descripción de materiales pedidos para alguna obra en una cantidad promedio mayor a 320
unidades.
7. Mostrar el nombre del material menos pedido (en cantidad total).
8. Mostrar la descripción de las obras que no han utilizado pintura.
9. Mostrar el nombre de las obras abastecidas totalmente por la ferretería MR S.A.
10. Mostrar el nombre de los materiales que han sido pedidos para todas las obras realizadas.

c) Sobre el esquema planteado enuncie las consultas en SQL para actualizarla:


1. Actualice el teléfono de la Ferretería San Ignacio por el número 4312548.
2. Actualice la Zona de la Obra por Cuyo Norte.
3. Elimine el Material con descripción Cemento Avellaneda.

d) Sobre el esquema planteado especifique la siguiente vista:


1. Una Vista de “ObrasCuyoNorte” con el Co (código de la obra) y EmpCon (empresa constructora) que sean de la
zona Cuyo Norte.

Ejercicio 4: INV
El INV cuenta con una base de datos que posee información de las distintas bodegas que existen en el país. Las
tablas que la conforman se presentan a continuación:

BOD (Bodegas) = {CuitB, NomB, Direcc, Tel, Dni (Dueño), CodProv}


PROV (Provincias) = {CodProv, NomP, Región}
PERSONAS (Productores y/o Bodegueros) = {Dni, Nom, Domi, Tel}
VIÑEDOS = {CodV, extensión, CodProv, Dni (Dueño)}
TUVA (Tipos de uvas) = {Codtu, Descr}
CULTIVA = {CodV, Codtu}
ING_PROP (Ingreso de uvas propias) = {CuitB, CodV, Codtu, fecha, kgs}
ING_EXT (Ingreso de uvas compradas) = {CuitB, CodV, Codtu, fecha, kgs, precio}

a) Definición de la estructura.
1. Crear las tablas correspondientes, especificando clave primaria y foránea.
2. Inserte las tuplas necesarias en cada relación creada para luego poder realizar las consultas que se le solicitan.
Bases de Datos – Año 2012
b) Resolver las consultas planteadas usando el lenguaje SQL.
1. Obtener todos los datos de los productores que cultivan uvas tintas, blancas y cerezas (simultáneamente).
2. Obtener nombre y teléfono de los productores que cultivan todos los tipos de uvas; es decir, entre sus viñedos.
3. Obtener el nombre de los productores que no han vendido todos los tipos de uvas que han producido.
4. Obtener el nombre de las provincias que no cuentan con viñedos ni tampoco cuentan con bodegas.
5. Obtener el nombre de las bodegas que han usado solamente recursos propios.
6. Obtener el nombre de las bodegas que han procesado (refiere a todo lo que ingresó) todos los tipos de uvas.

c) Sobre el esquema planteado enuncie las consultas en SQL para actualizarla:


1. Actualice el teléfono de la Bodega Viñas de San Ignacio por el número 0264 4312548.
2. Actualice la Región de la Provincia de San Juan por Nuevo Cuyo.
3. Elimine la Bodega “Viñas de Carrascosa S.A.”.

d) Sobre el esquema planteado especifique las siguientes vistas:


1. Una Vista de Bodegas con el Cuit de la Bodega, Nombre de la Bodega y el Dueño.
2. Una Vista de Bodegas con el Cuit de la Bodega, Nombre de la Bodega y el código de la provincia.

Ejercicio 5: Empresa de Colectivos


La provincia cuenta con una base de datos que posee información acerca de las distintas empresas de ómnibus que
existen. Las tablas que la forman se plantean a continuación :

EMP (Empresas de Omnibus) = {Cuit, Nom, Dir, Tel}


CHOF (Choferes) = {Dni, Nom, Edad, Dom, celular, Patente, Turno (M: mañana, T: tarde, N: nocturno)}
LIN (Líneas) = {CodL, Descr, Cuit}
UNI (Unidades) = {Patente, Modelo, CodM, CodL}
MARCAS = {CodM, Nom}
CALLES = {CodC, Nom, Orient}
RECO (Recorrido) = {CodL, CodC, Orden, Cant_cuad (cantidad de cuadras)}

a) Definición de la estructura.
1. Crear las tablas correspondientes, especificando clave primaria y foránea.
2. Inserte las tuplas necesarias en cada relación creada para luego poder realizar las consultas que se le solicitan.

b) Resolver las consultas planteadas usando el lenguaje SQL.


1. Mostrar todos los datos de las unidades que son manejadas por un solo chofer.
2. Mostrar el nombre de la empresa que posee mayor cantidad de unidades modelo 2009.
3. Mostrar el personal correspondiente a la empresa La Positiva.
4. Mostrar el nombre de las calles por las que circulan alguna de las líneas de cada empresa de transporte, es
decir, deben estar presentes todas las empresas.
5. Mostrar el nombre de las calles por las que circula más de una línea de colectivos.
6. Mostrar el nombre de las calles por las que circula una línea más de una vez en su recorrido.
7. Mostrar la descripción de la línea que tiene el recorrido más extenso.
8. Mostrar todos los datos de las empresas que poseen unidades de todas las marcas.
9. Mostrar el recorrido de la línea X (descripción de la línea) a partir de la calle Mitre.
10. Mostrar el nombre de las empresas que sólo poseen unidades marca Mercedes Benz.
11. Mostrar el nombre y orientación de las calles por las que ninguna línea pasa en su recorrido.

c) Sobre el esquema planteado enuncie las consultas en SQL para actualizarla:


1. Actualice el celular del Chofer con “dni = 18923145” por el número 0264 4312548.
2. Actualice el nombre de la calle con código “calle10” por Hipólito Irigoyen.
3. Elimine la unidad (colectivo) con patente ABC 123 por darse de baja.

d) Sobre el esquema planteado especifique las siguientes vistas:


1. Una Vista de “TurnoMañ” con los atributos siguientes Dni, nombre del chofer y patente de la unidad que
maneja.
Bases de Datos – Año 2012
2. Una Vista de “TurnoTarde” con los atributos siguientes Dni, nombre del chofer y patente de la unidad que
maneja.
3. Una Vista de “TurnoNoche” con los atributos siguientes Dni, nombre del chofer y patente de la unidad que
maneja.

Ejercicio 6: Planes de Ahorro


Una agencia de autos ofrece planes de ahorro. Para ello, se forman grupos de personas que quieren acceder a un
determinado tipo de vehículo, abonan mensualmente una cuota y todos los meses se entrega un
vehículo. Las tablas almacenadas en la base de datos que mantiene la información necesaria para
administrarlos son:

PERSONAS = {Dni, Nombre, Dirección, Tel, email}


GRUPOS (Plan) = {Nro_Grupo, Fecha_creación, Id_Mod}
MODELOS = {Id_Mod, Nom_Mod, Marca, precio}
PERTENECE = {DNI, Nro_Grupo, Orden, Adj(si/no), Id_Mod}
BOLETAS = {Nro_Grupo, Orden, Nro_cuota, Fecha_Vencim, Importe, Fecha_Pago, Pagado (si/no)}

a) Definición de la estructura.
1. Crear las tablas correspondientes, especificando clave primaria y foránea.
2. Inserte las tuplas necesarias en cada relación creada para luego poder realizar las consultas que se le solicitan.

b) Resolver las consultas planteadas usando el lenguaje SQL.


1. Número y fecha de creación de aquellos grupos donde todos los integrantes ya tienen su vehículo adjudicado.
2. Personas (nombre y dirección) que cambiaron el modelo del vehículo al momento de la adjudicación.
3. Personas (todos los datos) que actualmente no están inscriptas en ningún grupo.
4. Personas (nombre, email) que están inscriptas en un plan modelo Palio y también en un plan modelo Siena.
5. Personas (nombre, email) que están inscriptas en, al menos, un plan de la marca Ford. (Cualquier modelo de la
marca Ford. Marca correspondiente al modelo del grupo.)
6. Personas (dni) que están inscriptas en, al menos, un plan para cada marca. Es decir, entre sus planes abarcan
todas las marcas. (La marca correspondiente al modelo del grupo. En la tabla MODELOS están registradas todas
las marcas de vehículos.)
7. Listar todos los grupos (Número y fecha de creación) junto a la cantidad de integrantes.

You might also like