Consultas SQL Esenciales: Recuperación y Modificación de Datos en Tablas Cajas y Almacenes
Consultas SQL Esenciales: Recuperación y Modificación de Datos
A continuación, se presentan diversas consultas SQL para interactuar con las tablas cajas y almacenes, cubriendo operaciones de selección, conteo y actualización de registros.
1. Obtención de Referencia y Ciudad de Cajas
Recuperar el número de referencia de cada caja junto con el nombre de la ciudad en la que se encuentra.
SELECT
c.numreferencia,
a.lugar
FROM
cajas AS c
JOIN
almacenes AS a ON c.almacen = a.codigo;2. Conteo de Cajas por Almacén (Incluyendo Almacenes Vacíos)
Obtener el número de cajas que hay en cada almacén, mostrando también aquellos almacenes que no tengan cajas (conteo cero).
SELECT
a.codigo,
COUNT(c.numreferencia) AS total_cajas
FROM
almacenes AS a
LEFT JOIN
cajas AS c ON a.codigo = c.almacen
GROUP BY
a.codigo;3. Identificación de Almacenes Saturados
Obtener los códigos de los almacenes que están saturados (almacenes donde el número de cajas es superior a su capacidad).
SELECT
a.codigo
FROM
almacenes AS a
WHERE
a.capacidad < (
SELECT
COUNT(numreferencia)
FROM
cajas
WHERE
almacen = a.codigo
);4. Cajas en Ciudades Específicas
Obtener los números de referencia y la ciudad de las cajas que están en ciudades que comienzan por la letra 'B'.
SELECT
c.numreferencia,
a.lugar
FROM
almacenes AS a
JOIN
cajas AS c ON c.almacen = a.codigo
WHERE
a.lugar LIKE 'B%';5. Modificaciones de Valor en la Tabla Cajas
5.1. Rebajar el Valor de Todas las Cajas un 15%
Se proponen dos métodos equivalentes para aplicar la rebaja:
Opción 1: Multiplicación Directa
UPDATE
cajas
SET
valor = valor * 0.85;Opción 2: Resta del Porcentaje
UPDATE
cajas
SET
valor = valor - (valor * 0.15);5.2. Rebajar un 20% el Valor de Cajas Superiores al Promedio
Rebajar un 20% el valor de todas las cajas cuyo valor sea superior al valor medio de todas las cajas.
Opción 1
UPDATE
cajas
SET
valor = valor * 0.80
WHERE
valor > (SELECT AVG(valor) FROM cajas);Opción 2
UPDATE
cajas
SET
valor = valor - (valor * 0.20)
WHERE
valor > (SELECT AVG(valor) FROM cajas);6. Eliminación Condicional de Registros
Eliminar todas las cajas cuyo valor sea inferior a 100.
DELETE FROM
cajas
WHERE
valor < 100;