La commande UPDATE permet de mettre à jour des données existantes au sein d'une table.

UPDATE Nom_Table
SET Col_1 = Nouv_Val_1[, Col_2 = Nouv_Val_2[, ..., Col_N = Nouv_Val_N]]
[WHERE Condition]

UPDATE personnes
SET nom = 'DUPONT', adresse = '12b rue du Commerce'
WHERE nom = 'DUPOND' AND prenom = 'Albert'

La commande UPDATE peut mettre à jour les données de manières différentes :

  • La valeur d'une seule colonne en ne citant qu'une colonne associéé à sa nouvelle valeur.
  • Plusieurs colonnes simultanément en citant plusieurs colonnes avec leur valeur respective.
  • Par l'intermédiaire d'une clause conditionnelle affectant quelques lignes de données, les valeurs de plusieurs enregistrements en même temps.

Une opération de mise à jour peut être effectuée sur un jeu d'enregistrements en utilisant une sous-requête de sélection.

UPDATE nom_table1 AS tab1
SET tab1.nom_champ = valeur
WHERE tab1.nom_champ opérateur (SELECT tab2.nom_champ
                                                                     FROM nom_table2 AS tab2
                                                                     WHERE Condition)

UPDATE produits AS p
SET p.prix = p.prix + (p.prix * 5 / 100)
WHERE p.marque IN (SELECT fournisseur 
                                         FROM fournisseurs 
                                         WHERE decision = 'hausse')
Exemple
UPDATE Fiche_Personne
         SET CP = 75012
         WHERE Nom = "JANVIER" AND Prenom = "Denis"

Met à jour la valeur CP sur une seule colonne
Fiche_Personne
id Nom Prenom CP
187 JANVIER Denis 75012
1097 NAPOLI Victor 75020
10852 ARCHI Bertrand 93330
20140 MULLER Arthur 75020
1654327 NAPOLI Julien 75020
7503609 ANATOLIS Ivan 92100
UPDATE Fiche_Personne
         SET CP = 95200
         WHERE Nom = "NAPOLI"

Met à jour la valeur CP sur deux enregistrements
Fiche_Personne
id Nom Prenom CP
187 JANVIER Denis 75012
1097 NAPOLI Victor 95200
10852 ARCHI Bertrand 93330
20140 MULLER Arthur 75020
1654327 NAPOLI Julien 95200
7503609 ANATOLIS Ivan 92100