Proyecto Primer Parcial Bases
Chihuahua
Facultad de Ingeniería
Ingeniería en Software
PROYECTO PRIMER PARCIAL
Materia: Bases de datos
Equipo:
Daniela Santillanes Castro
281840
Alejandro Escobedo García
281941
Erik David Zubia Hernández
282071
Fecha: 03/03/2015
--Consulta 1
Obtener los datos de todos los proyectos de la cía.
select * from proyectos;
--Consulta 2
Obtener los datos de losproyectos ubicados en Londres
select * from proyectos
where ciudad = 'Londres';
--Consulta 3
Obtener los no. de los proveedores que surten al proyecto Y1
select id_proveedor no_proveedor
from envios
where id_proyecto = 1;
--Consulta 4
Obtener todos los envíos donde la cantidad está en el rango de 300 a 750 inclusive
select id_envio, cantidad
from envios
where cantidad between 300 and 750;--Consulta 5
Obtener todas las combinaciones parte-color/parte-ciudad
select p.parte, s.color color_ciudad
from partes p cross join partes s
union
select s.parte, p.ciudad
from partes s cross join partes p;
--Consulta 6
Obtener todos los envíos en los cuales el proveedor, el proyecto y la parte estén en la
misma ciudad
select v.PROVEEDOR, p.PARTE, y.PROYECTO
from envios e
join proveedores von(e.ID_PROVEEDOR=v.ID_PROVEEDORES)
join partes p
on (e.ID_PARTE = p.ID_PARTE)
join proyectos y
on(e.ID_PROYECTO=y.ID_PROYECTOS)
where v.CIUDAD in p.CIUDAD and v.CIUDAD in y.CIUDAD and p.CIUDAD in
y.CIUDAD;
--Consulta 7
Obtener todos los envíos en los cuales el proveedor, el proyecto y la parte no estén en
la misma ciudad
select v.PROVEEDOR, p.PARTE, y.PROYECTO
from envios e
join proveedores von(e.ID_PROVEEDOR=v.ID_PROVEEDORES)
join partes p
on (e.ID_PARTE = p.ID_PARTE)
join proyectos y
on(e.ID_PROYECTO=y.ID_PROYECTOS)
where v.CIUDAD not in p.CIUDAD and v.CIUDAD not in y.CIUDAD and p.CIUDAD
not in y.CIUDAD;
--Consulta 8
Obtener todos los envíos en los cuales el proveedor, el proyecto y la parte no estén en
la misma ciudad(ningún par)
SELECT p.id_proveedores, pa.id_parte , pr.id_proyectos,e.cantidad
FROM envios e JOIN proveedores p
ON (e.id_proveedor=p.id_proveedores)
JOIN partes pa ON(e.id_parte=pa.id_parte) JOIN proyectos pr
ON(e.id_proyecto=pr.id_proyectos)
WHERE p.ciudad<>pr.ciudad and pa.ciudad<>p.ciudad ;
--Consulta 9
Obtener las partes suministradas por los proveedores de Londres
select p.PARTE, v.CIUDAD, v.PROVEEDOR
from envios e
join proveedores von(e.ID_PROVEEDOR=v.ID_PROVEEDORES)
join partes p
on (e.ID_PARTE = p.ID_PARTE)
join proyectos y
on(e.ID_PROYECTO=y.ID_PROYECTOS)
where v.ciudad in 'Londres';
--Consulta 10
Obtener los números de las partes suministradas por un proveedor de Londres para un
proyecto en Londres
select p.PARTE, v.CIUDAD, v.PROVEEDOR
from envios e
join proveedores v
on(e.ID_PROVEEDOR=v.ID_PROVEEDORES)
join partes p
on (e.ID_PARTE = p.ID_PARTE)join proyectos y
on(e.ID_PROYECTO=y.ID_PROYECTOS)
where v.ciudad in 'Londres' and y.CIUDAD in 'Londres';
--Consulta 11
Obtener todas las ciudades en las que esté ubicado al menos un proveedor, parte o
proyecto
select distinct y.CIUDAD, count(*)
from envios e
join proveedores v
on(e.ID_PROVEEDOR=v.ID_PROVEEDORES)
join partes p
on (e.ID_PARTE = p.ID_PARTE)
join proyectos yon(e.ID_PROYECTO=y.ID_PROYECTOS)
group by y.CIUDAD having count(*) >= 1;
--Consulta 12
Obtener los números de partes suministradas ya sea por un proveedor de Londres o a
un proyecto en Londres
select p.PARTE
from envios e
join proveedores v
on(e.ID_PROVEEDOR=v.ID_PROVEEDORES)
join partes p
on (e.ID_PARTE = p.ID_PARTE)
join proyectos y
on(e.ID_PROYECTO=y.ID_PROYECTOS)
where v.CIUDAD in 'Londres' or y.CIUDAD in'Londres';
--Consulta 13
Obtener los pares número de proveedor/número de parte tales que el proveedor no
suministre la parte
select f.id_parte, id_proveedores
from partes f cross join proveedores
minus
select id_proveedor, id_parte from envios;
--Consulta 14
Obtener los nombres de los proyectos a los cuales se les surte más de tres partes
select y.PROYECTO, count(*) num_partes
from envios e
join...
Regístrate para leer el documento completo.