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
UPDATE tableSET colonne1 = expression1, colonne2 = expression2WHERE condition;Exemple
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
- 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.
- 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.
- Toutes les expressions de SET lisent les valeurs d'avant la mise à jour : SET a = b, b = a échange bien les deux colonnes.
- 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
- INSERTINSERT ajoute de nouvelles lignes dans une table, une par une, par lot ou à partir d'une requête. Les colonnes non citées prennent leur valeur par défaut, ou NULL si aucune n'est prévue.
- DELETEDELETE retire des lignes d'une table tout en conservant sa structure. On l'utilise pour purger des données obsolètes ou annulées, toujours avec un WHERE vérifié au préalable.
- WHEREWHERE ne garde que les lignes qui vérifient une condition, avant tout regroupement. C'est le filtre de base pour cibler un client, une période, un statut ou une plage de valeurs.
- TransactionsUne transaction regroupe plusieurs écritures qui réussissent toutes ou échouent toutes. Une commande et ses lignes, ou un virement entre deux comptes, ne doivent jamais rester à moitié enregistrés.