Ej Algebra Relacional
Ej Algebra Relacional
Ej Algebra Relacional
4. Listar los clientes que solicitan algún ítem provisto por proveedores con categoria
mayor que 4.
SELECT DISTINCT CL.nro_c, CL.nom_c
FROM clientes CL
WHERE EXISTS (
SELECT *
)
5. Listar los ítems pedidos por clientes de Rosario.
SELECT I.Nro_I, I.Descripcion_I
FROM ITEMS AS I
WHERE I.Nro_I IN (
SELECT PD.Nro_I
);
7. Listar los pedidos en los que el cliente "23" solicita items no solicitados por el cliente
"30".
SELECT PR1.nom_p, CL1.nom_c, IT1.descripcion_i, PE1.cantidad, PE1.precio
AND PE1.nro_c = 23
SELECT IT2.nro_i
);
8. Listar las ciudades en la forma (ciu1,ciu2 ) tales que un proveedor en ciu1 provea
items solicitados por clientes de ciu2.
FROM PROVEEDORES AS P
SELECT MAX(P.Categoria)
);
10. Listar los clientes que han pedido 2 o más ítems distintos.
SELECT DISTINCT PD1.Nro_C, C.Nom_C
SELECT AVG(SUMA)
FROM TEMP
HAVING COUNT(C.Nro_C) = (
SELECT COUNT(C2.Nro_C)
PD2.Nro_P = P.Nro_P
);
EJERCICIO 2
Sea la siguiente Base de Datos:
VUELOS (nro-vuelo,desde,hasta)
AVION-UTILIZADO(nro-vuelo,tipo-avión,nro-avión)
INFO-PASAJEROS(nro-vuelo,dni,nombre,origen,destino)
Los vuelos no pueden tener más de dos escalas y no hay cambio de tipo de avión
para un mismo número de vuelo.
Realizar las siguientes consultas:
Empleado(nro_empleado,nombre,domicilio,localidad,antigüedad)
Funcion(nro_funcion,descripcion)
Planta(nro_planta,descripcion,localidad)
Tarea(nro_empleado, nro_funcion)
Organización(nro_planta,nro_funcion)
Trabaja(nro_empleado, nro_planta)
Distancia(localidad1, localidad2,distancia)
EJERCICIO 4
Sea la siguiente Base de Datos:
Artículos(nro_art,descripcion,peso,precio_unit,fabricado_en)
Facturas(nro_fact, nro_cli, fecha, fecha_venc)
DetalleFactura(nro_fact,nro_art,cant)
Clientes(nro_cli, nombre, domicilio, ciudad, País, Ocupación)
Expresar la siguiente consulta en Algebra Relacional:
Listar los nombres de los clientes que hayan comprado al menos 2 artículos distintos.
EJERCICIO 5
Sea la siguiente Base de Datos:
EJERCICIO 6
Sea la siguiente Base de Datos:
EJERCICIO 7
Para la siguiente base de datos:
ALUMNOS(nroLeg,nombre,domicilio,planDeEstudios)
MATERIAS(nroMat,nombre,planDeEstudios)
EXAMENES(nroLeg,nroMat,nota,fecha)
CURSAN(nroLeg, nroMat)
CORRELATIVA(nroMat,nroCorrelat)
EJERCICIO 8
Sea la siguiente base de datos:
ALUMNOS(nroLeg,nombre,domicilio,planDeEstudios)
MATERIAS(nroMat,nombre,planDeEstudios)
EXAMENES(nroLeg,nroMat,nota,fecha)
CURSAN(nroLeg, nroMat)
EJERCICIO 9
Para la siguiente base de datos:
ALUMNOS(dni, nombre,apellido,nacionalidad)
FACULTADES(codfacultad, nombre)
CARRERAS(codcarrera, nombre,codfacultad,cantidadDeAlumnos) codfacultad
foreign key references facultades(codfacultad)
ESTUDIANTEDE(dni,codcarrera)
ALUMNOS(nro_leg,nombre,domicilio,plan_de_estudios)
CURSOS(nro_curso,nombre,horario)
MATERIAS(nro_mat,nombre,plan_de_estudios)
APROBO(nro_leg,nro_mat,nota)
EJERCICIO 11
Dada la BD:
FRECUENTA(nombre-pers,nombre-bar)
SIRVE(nombre-bar,nombre-cerveza)
GUSTA(nombre-persona,nombre-cerveza)
1. Encontrar las personas que frecuentan un bar que sirve una cerveza que les
gusta. 2. Encontrar las personas que beben en el mismo bar que las personas a las
que les gusta la cerveza "Quilmes".
3. Encontrar las personas que beben en el mismo bar que aquellas a las que le
gusta una marca de cerveza que sirva dicho bar y que le guste a Juan Perez.
SELECT DISTINCT FAux.Nombre_Pers
WHERE G.Nombre_Cerveza IN (
SELECT Nombre_Cerveza
FROM GUSTA
G.Nombre_Cerveza = S.Nombre_Cerveza
GROUP BY G.Nombre_Pers
5. Encontrar las personas que no frecuentan ningún bar que sirva alguna cerveza que
le guste.
SELECT DISTINCT F.Nombre_Pers
FROM FRECUENTA AS F
SELECT FAux.Nombre_Pers
);
EJERCICIO 12
Sea la BD:
PERSONAS(tipo-doc,num-doc,nomyap,dir,tel,fnac,sexo)
PROGENITOR(tipo-doc,num-doc,tipo-doc-hijo,num-doc-hijo)
1. Listar para cada Juan Perez los tipo y número de documento, nombre y
apellido y teléfonos de todos sus hijos.
SELECT DISTINCT PH.*
2. b.-Idem a ,de :
1. todos sus hermanos ( los hijos de su padre y/o su madre).
SELECT DISTINCT PH.*
2. su madre.
SELECT DISTINCT PM.*
WHERE CA.Cant_Fabricas = (
SELECT MAX(Cant_Fabricas)
FROM CIUDADES
UNION
SELECT CB.Nombre
WHERE CA.Cant_Fabricas = (
SELECT MAX(Cant_Fabricas)
FROM CIUDADES)
T.Distancia < 50
HAVING COUNT(C.C_Ciudad) = (
FROM CIUDADES C1
);
EJERCICIO 14
Sea la siguiente Base de Datos:
Artículos(nro_art,descripcion,color,peso,precio_unit,fabricado_en)
Factura(nro_fact,nro_cli,fecha, fecha_venc)
DetalleFactura(nro_fact,nro_art,cant)
Clientes(nro_cli, nombre, domicilio, ciudad, País, Ocupación)