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';
