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.
Syntaxe
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é avec WHERE. Il est aussi possible d’attribuer la même valeur à la colonne nom_colonne_1 pour toutes les lignes d’une table si la condition WHERE n’était pas utilisée.
A noter, pour spécifier en une seule fois plusieurs modification, il faut séparer les attributions de valeur par des virgules. Ainsi la syntaxe deviendrait la suivante :
UPDATE table SET colonne_1 = 'valeur 1', colonne_2 = 'valeur 2', colonne_3 = 'valeur 3' WHERE condition
Exemple
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 |
Modifier une ligne
Pour modifier l’adresse du client Pierre, il est possible d’utiliser la requête SQL suivante :
UPDATE client SET rue = '49 Rue Ameline', ville = 'Saint-Eustache-la-Forêt', code_postal = '76210' WHERE id = 2
Cette requête sert à définir la colonne rue à “49 Rue Ameline”, la ville à “Saint-Eustache-la-Forêt” et le code postal à “76210” uniquement pour ligne où l’identifiant est égal à 2.
Résultats :
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 toutes les lignes
Il est possible d’effectuer une modification sur toutes les lignes en omettant d’utiliser une clause conditionnelle. Il est par exemple possible de mettre la valeur “FRANCE” dans la colonne “pays” pour toutes les lignes de la table, grâce à la requête SQL ci-dessous.
UPDATE client SET pays = 'FRANCE'
Résultats :
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 |