UPDATE : corriger et mettre à jour des lignes existantes
UPDATE sert à modifier une ou plusieurs lignes déjà présentes dans une table.
C’est une commande puissante… et potentiellement dangereuse si on oublie WHERE.
Une ligne = une fiche remplie. UPDATE = “je prends une fiche existante et je corrige certains champs”.
Par exemple : changer l’email d’un client, marquer un livre comme “emprunté”, corriger une année…
Un UPDATE sans WHERE modifie toutes les lignes de la table.
Quand on débute, on adopte un réflexe : on prépare d’abord un SELECT avec le même WHERE.
La structure de base
La forme classique d’un UPDATE :
UPDATE nom_table
SET colonne1 = valeur1, colonne2 = valeur2
WHERE condition;
🏷️
UPDATE
Obligatoire
La table dans laquelle vous modifiez des données.
🧰
SET
Obligatoire
Les colonnes à modifier et leurs nouvelles valeurs.
🎯
WHERE
Très important
Quelles lignes modifier (filtre).
✅
Bonne pratique
Faire d’abord : SELECT * avec le même WHERE, pour vérifier les lignes ciblées.
Exemple simple : modifier une seule colonne
Exemple : un film a une note incorrecte, vous la corrigez.
SELECT id, titre, note
FROM films
WHERE id = 3;
UPDATE films
SET note = 10
WHERE id = 3;
Une clé primaire (souvent id) identifie une ligne de façon unique.
C’est le moyen le plus sûr de modifier une seule ligne.
Modifier plusieurs colonnes d’un coup
Exemple : on corrige à la fois l’année et la note.
UPDATE films
SET annee = 2014, note = 9
WHERE titre = 'Interstellar';
Si plusieurs lignes ont le même titre, vous modifierez plusieurs lignes.
Si vous avez un id, préférez WHERE id = ....
Cas très courant : mettre à jour un “statut”
Exemple : dans livres, vous avez une colonne disponible (TRUE/FALSE).
UPDATE livres
SET disponible = FALSE
WHERE titre = 'Dune';
Beaucoup de tables ont des colonnes “état” : actif/inactif, publié/brouillon,
payé/non payé, disponible/indisponible. UPDATE sert tout le temps à gérer ces statuts.
Mise à jour de plusieurs lignes (mise à jour groupée)
UPDATE peut modifier plusieurs lignes, ce qui est parfois voulu.
Exemple : augmenter la note de tous les films sortis avant 2000 (exemple pédagogique).
SELECT id, titre, annee, note
FROM films
WHERE annee < 2000;
UPDATE films
SET note = note + 1
WHERE annee < 2000;
Dans un vrai projet, on valide souvent l’impact avant : combien de lignes vont être modifiées ?
Avec SQLite/DB Browser, regardez le message de résultat (nombre de lignes affectées).
Guide pas à pas : modifier une donnée sans stress
1
Écrire le SELECT de contrôle
Vous écrivez d’abord un SELECT avec la condition que vous comptez utiliser :
SELECT *
FROM films
WHERE id = 3;
Objectif : vérifier que vous ciblez la bonne ligne.
2
Écrire l’UPDATE correspondant
UPDATE films
SET note = 10
WHERE id = 3;
Relisez : table → colonne → valeur → WHERE.
3
Re-vérifier le résultat
Rejouez un SELECT (ou regardez “Parcourir les données”).
SELECT id, titre, note
FROM films
WHERE id = 3;
SELECT (je vérifie) → UPDATE (j’applique) → SELECT (je confirme).
C’est la méthode la plus fiable quand on apprend.
Erreurs courantes avec UPDATE
❌
Oublier WHERE
Conséquence : toutes les lignes sont modifiées.
Solution : écrire d’abord le SELECT de contrôle.
❌
Mauvais guillemets sur du texte
Cause : vous mettez du texte sans quotes.
SET ville = Strasbourg
SET ville = 'Strasbourg'
❌
“0 ligne modifiée”
Cause : votre WHERE ne correspond à aucune ligne (id inexistant, faute de frappe...).
Solution : exécuter le SELECT avec le même WHERE pour diagnostiquer.
Exercice pratique : corrections et statuts
Choisissez films ou livres selon votre base. Objectif : pratiquer UPDATE en conditions réalistes.
1) Corriger une valeur
Changez la note d’un film (ex : passer à 9 ou 10).
UPDATE films
SET note = 9
WHERE id = 1;
2) Modifier deux colonnes
Corrigez l’année et la note du même film.
UPDATE films
SET annee = 2012, note = 8
WHERE id = 1;
3) Statut disponible
Marquez un livre comme indisponible (ou l’inverse).
UPDATE livres
SET disponible = FALSE
WHERE id = 2;
Bonus (prudence)
Augmentez de +1 la note de tous les films notés < 7 (exemple pédagogique).
UPDATE films
SET note = note + 1
WHERE note < 7;
Pour chaque UPDATE, faites un SELECT avant et un SELECT après. Si vous modifiez trop de lignes, arrêtez et
vérifiez votre WHERE (et l’existence de doublons).
Récapitulatif du chapitre
- Modifier une ou plusieurs colonnes avec UPDATE + SET
- Cibler précisément des lignes avec WHERE
- Mettre à jour un “statut” (disponible, actif, etc.)
- Faire des mises à jour en masse (avec prudence)
- Éviter les erreurs classiques : WHERE oublié, 0 ligne modifiée, guillemets
Prochain chapitre : vous apprendrez à supprimer des données avec DELETE
(et là aussi, WHERE est indispensable).