Leçons du module (2/4)
Mettre à jour et supprimer : UPDATE et DELETE
UPDATE modifie les lignes existantes ; DELETE les supprime. Tous deux partagent le
même règle d'or fondamentale : la clause WHERE décide quelles lignes
toucher. L'oublier signifie modifier/supprimer tout le tableau.
MISE À JOUR
UPDATE tabella
SET colonna1 = nuovo_valore,
colonna2 = altra_espressione
WHERE condizione;Exemples :
-- 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 : l'expression peut référencer le courant de la ligne
valeurs (price * 1.10), et peut également utiliser NOW(), NULL ou
sous-requêtes.
SUPPRIMER
DELETE FROM tabella
WHERE condizione;Exemples :
-- Cancella tutte le recensioni con rating < 3:
DELETE FROM reviews
WHERE rating < 3;
-- Cancella un ordine specifico:
DELETE FROM orders WHERE id = 999;RETOUR ici aussi
Comme INSERT, UPDATE et DELETE acceptent également RETURNING donc vous savez
sur quoi ils ont agi :
DELETE FROM reviews
WHERE rating < 3
RETURNING id, customer_id, rating;Utile pour enregistrer d'un seul coup ce qui a été supprimé/modifié.
Clés étrangères et suppression
Essayer de supprimer une ligne référencée par une autre table via une clé étrangère produit une erreur :
DELETE FROM customers WHERE id = 1;
-- ERROR: update or delete on table "customers" violates foreign key constraint
-- on table "orders"Solutions : supprimez d'abord les lignes enfants ou définissez le FK avec
ON DELETE CASCADE lorsque vous créez la table (nous en parlerons dans le
prochaine leçon DDL).
A ton tour
Augmentez de 10 % le prix de chaque produit de la catégorie 5 (Ordinateur). Une seule instruction UPDATE.
Afficher l'indice
L'expression à droite de SET peut faire référence à la colonne elle-même : prix * 1,10.
Solution disponible après 3 tentatives
Exercice de révision
Supprimez tous les avis dont la note est inférieure à 3 (avis très négatifs).
Afficher l'indice
OÙ note < 3.
Solution disponible après 3 tentatives