UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERIAS
División de electrónica y computación Departamento de Ciencias Computacionales Carrera: ingeniería en computación Materia: CC302 – Bases de Datos Sección: 03 Tarea: Ejercicios Extra de SQL Nombre: Código: Fecha: 14 de Diciembre del 2012 Nombre del profesor: José Ignacio Vázquez Herrera
Sobre las relaciones: (Las claves comienzan con #) PROVEEDORES S (#Snum,NOMBRE_S,STATUS,CIUDAD) PIEZAS P (#Pnum,NOMBRE_P,COLOR,PESO,CIUDAD) PROYECTOS J (#Jnum,NOMBRE_J,CIUDAD) SUMINISTRO SPJ (#Snum,#Pnum,#Jnum,CANTIDAD) Realizar las siguientes consultas en SQL: 1. Encontrar los códigos de los proveedores que suministran alguna pieza a J1. SELECT S# FROM SUMINISTRO WHERE J#=J1; 2. Encontrar los códigos de proveedor, pieza y proyecto cuya cantidad supere las 100 unidades. SELECT S#, P#,J# FROM SUMINISTRO WHERE CANTIDAD>100; 3. Encontrar los nombres de proveedores, piezas y proyectos que se encuentren en la misma ciudad. SELECTPROVEEDORES.NOMBRE-S, PIEZAS.NOMBRE-P, PROYECTOS.NOMBRE-J FROM PROVEEDORES, PIEZAS, PROYECTOS WHERE PROVEEDORES.CIUDAD = PIEZAS.CIUDAD AND PIEZAS.CIUDAD=PROYECTOS.CIUDAD; 4. Encontrar los nombres de las piezas suministradas por los proveedores de Londres. SELECT PIEZAS.NOMBRE-P FROM PIEZAS, SUMINISTRO, PROVEEDORES WHERE PIEZAS.P#=SUMINISTRO.P# AND PROVEEDORES.S#=SUMINISTRO.S# AND PROVEEDORES.CIUDAD=’LONDRES’; 5. Encontrar todas las parejas de ciudades tales que la primera sea la de un proveedor y la segunda la de un proyecto entre los cuales haya habido algún suministro. SELECT PROVEEDORES.CIUDAD, PROYECTO.CIUDAD FROM PROVEEDORES, SUMINISTRO, PROYECTOS WHERE PROVEEDORES.S#=SUMINISTRO.S# AND PROYECTOS.J#=SUMINISTRO.J#;
6. Encontrar los códigos de las piezas suministradas a algún proyecto por un proveedor que se encuentre en la misma ciudad que el proyecto. SELECT SUMINISTRO.P# FROM SUMINISTRO, PROYECTOS, PROVEEDOR WHERE PROVEEDORES.S#=SUMINISTRO.S# AND PROYECTOS.J#=SUMINISTRO.J# ANDPROVEEDOR.CIUDAD=PROYECTO.CIUDAD; 7. Encontrar los códigos de los proyectos que tienen al menos un proveedor que no se encuentre en su misma ciudad. SELECT PROYECTOS.J# FROM SUMINISTRO, PROYECTOS, PROVEEDOR WHERE PROVEEDORES.S#=SUMINISTRO.S# AND PROYECTOS.J#=SUMINISTRO.J# AND PROVEEDOR.CIUDAD<>PROYECTO.CIUDAD; 8. Encontrar los códigos de los proyectos que usan una pieza que puede ser suministrada por S1. SELECT P# FROM SUMINISTRO WHERE S#=S1; 9. Encontrar la cantidad más pequeña enviada en algún suministro. SELECT MIN (CANTIDAD) FROM SUMINISTRO; 10. Encontrar los códigos de los proyectos que no utilizan una pieza roja suministrada por un proveedor de Londres. SELECT PROVEEDORES.J# FROM SUMINISTRO, PROVEEDORES, PIEZAS WHERE PROVEEDORES.S#=SUMINISTRO.S# AND PIEZAS.P#=SUMINISTRO.P# HAVING PROVEEDORES.CIUDAD=’Londres’ AND PIEZAS.COLOR<>’roja’; 11. Encontrar los códigos de los proyectos que tiene como único proveedor a S1. SELECT J# FROM SUMINISTRO WHERE S#=S1;
12. Encontrar los códigos de las piezas suministradas a todos los proyectos de Paris. SELECT SUMINISTRO.P# FROM SUMINISTRO, PROYECTOS WHERE SUMINISTRO.J#=PROYECTOS.J# AND PROYECTOS.CIUDAD=’Paris’; 13. Encontrar los códigos de los proveedores que venden la misma pieza a todos los proyectos. SELECT PROVEEDORES.S# FROM PROVEEDORES, PIEZAS, PROYECTOS WHERE PIEZA.P#= PIEZA.P#; 14. Encontrar los códigos de los proyectos a los que S1 suministra todas las piezas existentes. SELECT DISTINCT J# FROM PROVEEDORES, PIEZAS, PROYECTOS, SUMINISTRO WHERE NOT IN ( SELECT P# FROM PROVEEDORES, PIEZAS, PROYECTOS, SUMINISTRO WHERE SUMINISTRO.S# = ‘S1’ AND NOT IN( SELECT * FROM PROVEEDORES, PIEZAS, PROYECTOS,SUMINISTRO WHERE PIEZAS.P# = SUMINISTRO.P# AND PROYECTOS.J# = SUMINISTRO.J#));