Aller au contenu
Modification (DML)

UPDATE

UPDATE modifie les valeurs de lignes existantes. La clause WHERE désigne les lignes visées, SET les nouvelles valeurs, qui peuvent se calculer à partir des anciennes (hausse de prix, statut).

  • modifier
  • mettre à jour
  • DML
  • SET

Syntaxe

Modèle
UPDATE tableSET colonne1 = expression1, colonne2 = expression2WHERE condition;

Exemple

Exemple concret
UPDATE productsSET price = ROUND(price * 1.05, 2)WHERE category = 'Audio';SELECT name, priceFROM productsWHERE category = 'Audio'ORDER BY name;-- Jeu de données : boutique-- Hausse de 5 % sur les produits audio-- Résultat attendu :-- Casque audio | 157.49-- Enceinte Bluetooth | 83.99

À retenir

  1. Réflexe de sécurité : écrivez d'abord SELECT * FROM products WHERE category = 'Audio', vérifiez les lignes, puis remplacez SELECT par UPDATE en gardant le même WHERE.
  2. Piège : un UPDATE sans WHERE modifie toutes les lignes de la table. Travaillez dans une transaction (BEGIN … ROLLBACK) tant que vous n'êtes pas sûr.
  3. Toutes les expressions de SET lisent les valeurs d'avant la mise à jour : SET a = b, b = a échange bien les deux colonnes.
  4. Pour mettre à jour à partir d'une autre table, SQLite (3.33+) et PostgreSQL acceptent UPDATE … SET … FROM autre_table WHERE … . Sinon, une sous-requête corrélée dans SET fait l'affaire.

Voir aussi