Skip to content

UPDATE – Modifier des données

Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 5 minutes


La commande UPDATE permet d’effectuer des modifications sur des lignes existantes. Très souvent, cette commande est utilisée avec WHERE pour spécifier sur quelles lignes doivent porter la ou les modifications.

Attention : Sans clause WHERE, la commande UPDATE modifie toutes les lignes de la table. Utilisez-la avec précaution !


La syntaxe basique d’une requête utilisant UPDATE est la suivante :

UPDATE table
SET nom_colonne_1 = 'nouvelle valeur'
WHERE condition;

Cette syntaxe permet d’attribuer une nouvelle valeur à la colonne nom_colonne_1 pour les lignes qui respectent la condition stipulée avec WHERE.

Pour spécifier en une seule fois plusieurs modifications, il faut séparer les attributions de valeur par des virgules :

UPDATE table
SET colonne_1 = 'valeur 1',
colonne_2 = 'valeur 2',
colonne_3 = 'valeur 3'
WHERE condition;

Imaginons une table « client » qui présente les coordonnées de clients.

Table « client » :

id nom rue ville code_postal pays
1 Chantal 12 Avenue du Petit Trianon Puteaux 92800 France
2 Pierre 18 Rue de l’Allier Ponthion 51300 France
3 Romain 3 Chemin du Chiron Trévérien 35190 France

Pour modifier l’adresse du client Pierre, il est possible d’utiliser la requête suivante :

UPDATE client
SET rue = '49 Rue Ameline',
ville = 'Saint-Eustache-la-Forêt',
code_postal = '76210'
WHERE id = 2;

Résultat :

id nom rue ville code_postal pays
1 Chantal 12 Avenue du Petit Trianon Puteaux 92800 France
2 Pierre 49 Rue Ameline Saint-Eustache-la-Forêt 76210 France
3 Romain 3 Chemin du Chiron Trévérien 35190 France

Modifier le code postal de tous les clients habitant à Paris :

UPDATE client
SET code_postal = '75000'
WHERE ville = 'Paris';

Augmenter le prix de tous les produits de 10% :

UPDATE produit
SET prix = prix * 1.10;

Attention : Cette requête modifie tous les produits, car il n’y a pas de clause WHERE.

Utiliser CASE pour mettre à jour des valeurs selon une condition (comme vu au chapitre 15) :

UPDATE produit
SET prix = CASE
WHEN categorie = 'informatique' THEN prix * 1.10
WHEN categorie = 'fourniture' THEN prix * 1.05
ELSE prix
END;

Mettre à jour le total des achats des clients en fonction des commandes passées :

UPDATE client c
SET total_achats = (
SELECT SUM(prix_total)
FROM commande cmd
WHERE cmd.client_id = c.id
);

Mise à jour de plusieurs tables (MySQL, PostgreSQL)

Section titled “Mise à jour de plusieurs tables (MySQL, PostgreSQL)”

Certains SGBD permettent de mettre à jour plusieurs tables en une seule requête avec une jointure.

MySQL :

UPDATE client c
JOIN commande cmd ON c.id = cmd.client_id
SET c.total_achats = c.total_achats + cmd.prix_total
WHERE cmd.date_achat > '2024-01-01';

PostgreSQL :

UPDATE client
SET total_achats = total_achats + cmd.prix_total
FROM commande cmd
WHERE client.id = cmd.client_id
AND cmd.date_achat > '2024-01-01';

1. Toujours utiliser WHERE (sauf cas exceptionnel)

Section titled “1. Toujours utiliser WHERE (sauf cas exceptionnel)”
-- ❌ Dangereux : modifie TOUTES les lignes
UPDATE client SET pays = 'France';
-- ✅ Sécurisé : ne modifie qu'un client spécifique
UPDATE client SET pays = 'France' WHERE id = 42;

Avant d’exécuter une requête UPDATE, il est prudent de tester la condition avec un SELECT :

-- Vérifier quelles lignes vont être modifiées
SELECT * FROM client WHERE ville = 'Paris';
-- Puis exécuter la mise à jour
UPDATE client SET code_postal = '75000' WHERE ville = 'Paris';

Avant une mise à jour massive, il est recommandé de faire une sauvegarde :

-- Créer une copie de la table
CREATE TABLE client_backup AS SELECT * FROM client;
-- Ou exporter les données avant la mise à jour

Pour les opérations critiques, utilisez les transactions pour pouvoir annuler en cas d’erreur :

START TRANSACTION;
UPDATE client SET code_postal = '75000' WHERE ville = 'Paris';
-- Vérifier le résultat
SELECT * FROM client WHERE ville = 'Paris';
-- Valider si tout est correct
COMMIT;
-- Ou annuler si problème
-- ROLLBACK;

5. Utiliser RETURNING (PostgreSQL) pour voir les modifications

Section titled “5. Utiliser RETURNING (PostgreSQL) pour voir les modifications”
UPDATE client
SET pays = 'France'
WHERE id = 42
RETURNING *;

Erreur Cause Solution
Oubli de WHERE Toutes les lignes sont modifiées Toujours spécifier WHERE sauf exception
Violation de contrainte d’unicité Mise à jour vers une valeur déjà existante Vérifier l’unicité avant la mise à jour
Violation de contrainte NOT NULL Mise à jour vers NULL sur colonne non nullable Vérifier les contraintes de la colonne
Erreur de syntaxe Oubli de SET ou WHERE Vérifier la syntaxe de la requête

Vous savez désormais comment modifier des données avec UPDATE. Mais que faire pour supprimer des données ?

👉 Chapitre 23 : DELETE – Supprimer des lignes


Bonne continuation !
Junior TSAFACK – 08/08/2026