SQL UPDATE

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” :

idnomruevillecode_postalpays
1Chantal12 Avenue du Petit TrianonPuteaux92800France
2Pierre18 Rue de l'AllierPonthion51300France
3Romain3 Chemin du ChironTrévérien35190France

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 :

idnomruevillecode_postalpays
1Chantal12 Avenue du Petit TrianonPuteaux92800France
2Pierre49 Rue AmelineSaint-Eustache-la-Forêt76210France
3Romain3 Chemin du ChironTrévérien35190France

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 :

idnomruevillecode_postalpays
1Chantal12 Avenue du Petit TrianonPuteaux92800FRANCE
2Pierre49 Rue AmelineSaint-Eustache-la-Forêt76210FRANCE
3Romain3 Chemin du ChironTrévérien35190FRANCE
Partager