Il peut arriver que certaines données dans ta base doivent être corrigées ou mises à jour. Par exemple : un élève a changé de classe, un produit a un nouveau prix, ou une réservation doit être confirmée. C’est dans ce genre de situation que la commande UPDATE est utile. Elle permet de modifier des lignes déjà existantes dans une table.
À la fin de cette leçon, tu seras capable de :
UPDATEWHERE pour cibler précisément les lignes à modifierUPDATE nom_table
SET colonne1 = nouvelle_valeur1,
colonne2 = nouvelle_valeur2,
...
WHERE condition;
Imaginons la table Eleves :
CREATE TABLE Eleves (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(50),
age INT,
classe VARCHAR(10)
);
On veut changer la classe de Jean Dupont (qui a l’ID 1) en "5A" :
UPDATE Eleves
SET classe = '5A'
WHERE id = 1;
✅ Seule la ligne où id = 1 sera modifiée.
whereVoici un paragraphe explicatif sur la clause WHERE :
La clause WHERE dans les requêtes UPDATE sert à définir précisément quelles lignes doivent être modifiées. C’est un peu comme un filtre : seules les lignes qui respectent la condition seront mises à jour. Par exemple, si tu écris WHERE id = 3, tu ne modifies qu’un seul enregistrement. Mais tu peux aussi cibler plusieurs lignes avec des conditions comme WHERE classe = '4B' (tous les élèves de la 4B) ou WHERE age > 15. Tu peux même combiner plusieurs conditions avec AND, OR ou IN.
Bien utiliser WHERE, c’est éviter de modifier trop de données par erreur.
Tu peux modifier plusieurs champs d’une même ligne :
UPDATE Eleves
SET age = 16,
classe = '5B'
WHERE nom = 'Jean Dupont';
WHERE fortement recommandée !Si tu oublies la clause WHERE, toutes les lignes de la table seront modifiées.
UPDATE Eleves
SET classe = '5A';
🚨 Ce code mettra tous les élèves en classe "5A". Pas bon.
⚠️ Attention : si tu oublies d’indiquer quelle ligne modifier, tu risques de tout changer d’un coup. Ce cours va t’apprendre à éviter ce genre de piège.
SELECTAvant d’exécuter un UPDATE, tu peux tester la condition avec un SELECT :
SELECT * FROM Eleves WHERE classe = '4B';
Si le résultat est correct, tu peux ensuite faire :
UPDATE Eleves SET classe = '5A' WHERE classe = '4B';
UPDATE permet de modifier les données existantes dans une table.SET indique quelles colonnes doivent être changées et avec quelles valeurs.WHERE permet de cibler les lignes concernées. Elle est presque toujours indispensable.WHERE, toutes les lignes seront modifiées. À éviter sauf cas très particulier.SELECT avant d'exécuter la mise à jour.SELECT avant d'exécuter un UPDATEid) dans la clause WHERE pour éviter d’impacter plusieurs lignes par erreurVoici une table Livres :
CREATE TABLE Livres (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(100),
auteur VARCHAR(50),
annee INT
);
Tu peux faire un SELECT avant pour tester les conditions.