A continuación, se presentan una serie de consultas SQL diseñadas para extraer información relevante de una base de datos que gestiona proveedores, partes y proyectos. Estas consultas abarcan desde selecciones básicas hasta operaciones más complejas que involucran múltiples tablas y condiciones.
Consultas de Selección (SELECT)
Obtener nombre de proveedores, partes y cantidades suministradas
Consulta:
SELECT proveedores.nombreprov, partes.nombreparte, suministra.cantidad FROM partes INNER JOIN (proveedores INNER JOIN suministra ON proveedores.numprov = suministra.numprov) ON partes.numparte = suministra.numparte;
Obtener proveedores que no están en la misma ciudad
Consulta:
SELECT p2.nombreprov, p1.nombreprov FROM proveedores AS p1, proveedores AS p2 WHERE p1.ciudad <> p2.ciudad;
Mostrar suministros donde proveedor y parte son de ciudades distintas
Consulta:
SELECT suministra.numprov, proveedores.ciudad, suministra.numparte, partes.ciudad FROM suministra, proveedores, partes WHERE suministra.numparte = partes.numparte AND suministra.numprov = proveedores.numprov AND proveedores.ciudad <> partes.ciudad;
Mostrar proveedores que suministran partes rojas o que pesan 12 gramos o más
Consulta:
SELECT DISTINCT numprov FROM SUMINISTRA INNER JOIN PARTES ON SUMINISTRA.NUMPARTE = PARTES.NUMPARTE WHERE PESO >= 12 OR COLOR = "Rojo";
Cantidad de piezas suministradas por ciudad de piezas
Consulta:
SELECT partes.ciudad, SUM(CANTIDAD) FROM SUMINISTRA INNER JOIN PARTES ON SUMINISTRA.NUMPARTE = PARTES.NUMPART GROUP BY (ciudad);
Ciudad de proveedor con más suministros
Consulta:
SELECT CIUDAD, SUMINISTRA.numprov, SUM(cantidad) FROM suministra INNER JOIN PROVEEDORES ON PROVEEDORES.NUMPROV = SUMINISTRA.NUMPROV GROUP BY CIUDAD, SUMINISTRA.numprov HAVING SUM(CANTIDAD) >= ALL (SELECT SUM(cantidad) FROM suministra GROUP BY numprov);
Ciudad de parte con mayor media de suministros
Consulta:
SELECT PARTES.CIUDAD, S1.NUMPARTE, AVG(S1.CANTIDAD) FROM SUMINISTRA AS S1 INNER JOIN partes ON s1.numparte = partes.numparte GROUP BY PARTES.CIUDAD, S1.NUMPARTE HAVING AVG(S1.CANTIDAD) >= ALL (SELECT AVG(S2.CANTIDAD) FROM SUMINISTRA AS S2 GROUP BY S2.NUMPARTE);
Obtener todos los detalles de todos los proyectos
Consulta:
SELECT partes.nombreparte, proveedores.nombreprov, proyectos.nombreproyecto, suministra.cantidad FROM partes INNER JOIN (proveedores INNER JOIN (proyectos INNER JOIN suministra ON proyectos.numproyecto = suministra.numproyecto) ON proveedores.numprov = suministra.numprov) ON partes.numparte = suministra.numparte;
Obtener todos los detalles de proyectos en Londres
Consulta:
SELECT partes.nombreparte, proveedores.nombreprov, proyectos.nombreproyecto, suministra.cantidad FROM partes INNER JOIN (proveedores INNER JOIN (proyectos INNER JOIN suministra ON proyectos.numproyecto = suministra.numproyecto) ON proveedores.numprov = suministra.numprov) ON partes.numparte = suministra.numparte WHERE (((proyectos.ciudad) = "Londres"));
Códigos de proveedor que suministran al proyecto Y1
Consulta:
SELECT numprov FROM suministra WHERE numproyecto = "y1";
Datos de proyectos con partes entre 300 y 750 unidades
Consulta:
SELECT proyectos.* FROM suministra INNER JOIN proyectos ON suministra.numproyecto = proyectos.numproyecto WHERE cantidad >= 300 AND cantidad <= 750;
Combinaciones parte-color
Consulta:
SELECT nombreparte, color FROM partes;
Colores de partes usadas por el proveedor V1
Consulta:
SELECT DISTINCT color FROM partes INNER JOIN suministra ON suministra.numparte = partes.numparte WHERE suministra.numprov = 'v1';
Códigos de parte suministrados a proyectos en la misma ciudad del proveedor
Consulta:
SELECT numparte FROM proveedores INNER JOIN (proyectos INNER JOIN suministra ON proyectos.numproyecto = suministra.numproyecto) ON proveedores.numprov = suministra.numprov WHERE proyectos.ciudad = proveedores.ciudad;
Códigos de proyecto suministrados por proveedores en otra ciudad
Consulta:
SELECT suministra.numproyecto FROM partes INNER JOIN (proveedores INNER JOIN (proyectos INNER JOIN suministra ON proyectos.numproyecto = suministra.numproyecto) ON proveedores.numprov = suministra.numprov) ON partes.numparte = suministra.numparte WHERE (((proyectos.ciudad) <> [proveedores].[ciudad]));
Códigos de parte suministrados a proyectos en Londres
Consulta:
SELECT numparte FROM suministra INNER JOIN proyectos ON proyectos.numproyecto = suministra.numproyecto WHERE proyectos.ciudad = 'Londres';
Consultas de Actualización (UPDATE)
Actualizar peso de tornillos y levas
Consultas:
UPDATE PARTES SET PESO = 15.0 WHERE NOMBREPARTE = 'Tornillo';
UPDATE PARTES SET PESO = 11.0 WHERE NOMBREPARTE = 'Leva';
Actualizar peso de levas y color de tuercas
Consultas:
UPDATE PARTES SET PESO = 9 WHERE NOMBREPARTE = 'Leva';
UPDATE PARTES SET COLOR = 'Verde' WHERE NOMBREPARTE = 'Tuerca';
Actualizar ciudad de partes de Roma y peso de partes azules
Consultas:
UPDATE PARTES SET CIUDAD = 'Tokio' WHERE CIUDAD = 'Roma';
UPDATE PARTES SET PESO = 17 WHERE COLOR = 'Azul';