13
Chapitre 13 sur 21

Modifier des données (UPDATE)

Insérer des données, c’est créer des lignes. Les lire, c’est les afficher. Mais dans la vraie vie, on corrige, on met à jour, on change des statuts… C’est exactement le rôle de UPDATE.

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.

✏️

Analogie : corriger une fiche

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…

⚠️

Le grand risque

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.

-- 1) Je vérifie les lignes ciblées
SELECT id, titre, note
FROM films
WHERE id = 3;
-- 2) Je mets à jour la note
UPDATE films
SET note = 10
WHERE id = 3;

Pourquoi utiliser l'id ?

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';
⚠️

Attention avec WHERE sur du texte

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).

-- Marquer un livre comme non disponible (emprunté)
UPDATE livres
SET disponible = FALSE
WHERE titre = 'Dune';
💡

Réflexe “applications web”

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).

-- D'abord, vérifier ce que l'on cible
SELECT id, titre, annee, note
FROM films
WHERE annee < 2000;
-- Puis appliquer la mise à jour
UPDATE films
SET note = note + 1
WHERE annee < 2000;
⚠️

Les mises à jour en masse sont à manier avec soin

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;
🧩

La méthode “SAFE”

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.

-- Faux
SET ville = Strasbourg
-- Vrai
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;
🧠

Auto-correction

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

Ce que vous savez faire

  • 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).