Lecciones del módulo (2/4)
Actualizar y eliminar: UPDATE y DELETE
UPDATE modifica las filas existentes; DELETE los elimina. Ambos comparten el
La misma regla de oro fundamental: la cláusula WHERE decide qué filas
tocar. Olvidarlo significa modificar/eliminar toda la tabla.
ACTUALIZAR
UPDATE tabella
SET colonna1 = nuovo_valore,
colonna2 = altra_espressione
WHERE condizione;Ejemplos:
-- Aumenta del 10% i prezzi di tutti i prodotti della categoria 5 (Computer):
UPDATE products
SET price = price * 1.10
WHERE category_id = 5;
-- Aggiorna due colonne contemporaneamente:
UPDATE orders
SET status = 'shipped',
shipped_at = NOW()
WHERE id = 12;SET col = espressione: la expresión puede hacer referencia a la fila actual
valores (price * 1.10), y también puede usar NOW(), NULL o
subconsultas.
BORRAR
DELETE FROM tabella
WHERE condizione;Ejemplos:
-- Cancella tutte le recensioni con rating < 3:
DELETE FROM reviews
WHERE rating < 3;
-- Cancella un ordine specifico:
DELETE FROM orders WHERE id = 999;REGRESANDO aquí también
Al igual que INSERT, UPDATE y DELETE también aceptan RETURNING para que lo sepas.
en qué actuaron:
DELETE FROM reviews
WHERE rating < 3
RETURNING id, customer_id, rating;Útil para iniciar sesión de una sola vez en lo que se eliminó/modificó.
Claves externas y eliminación
Intentando eliminar una fila a la que hace referencia otra tabla a través de una clave externa produce un error:
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"Soluciones: elimine primero las filas secundarias o defina el FK con
ON DELETE CASCADE cuando creas la tabla (cubriremos esto en el
próxima lección de DDL).
Tu turno
Incrementar en un 10% el precio de cada producto de la categoría 5 (Computadora). Una única declaración de ACTUALIZACIÓN.
Mostrar pista
La expresión a la derecha de SET puede hacer referencia a la propia columna: precio * 1,10.
Solución disponible después de 3 intentos
Ejercicio de revisión
Elimina todas las reseñas con una calificación inferior a 3 (reseñas muy negativas).
Mostrar pista
DONDE calificación < 3.
Solución disponible después de 3 intentos