La commande SQL UPDATE

La commande UPDATE qui est sous-entendu comme ‘mise à jour’ permet de modifier les lignes (données) d’une table dans une base de données. UPDATE est semblable à  ALTER sauf que ALTER TABLE a un champ d’action d’opération sur les colonnes d’une table alors qu’avec UPDATE TAABLE a pour champ d’action d’opération sur les lignes d’une table. La commande UPDATE peut modifier toutes les valeurs d’une colonne d’une table en les remplaçant par une même valeur si on ne l’associe pas à des instructions de précision comme WHERE qui permet de filtrer les lignes.

UPDATE est utilisée avec SET.

La commande SQL UPDATE a pour syntaxe :

UPDATE nom_table SET nom_colonne WHERE condition ;

La commande UPDATE a pour rôle de remplacer la valeur d’une colonne d’une table en une nouvelle valeur. Le choix de la valeur fait intervenir la clause WHERE.

Nous allons tester avec et sans la clause WHERE avec notre table employee.

Table employee

id_employeelast_namefirst_namesalaryid_customer
1JonesSmith12001
2JackHarry60303
3WilliamJames70052
4MichaelOliver35001

 

 

 

 

Utilisation de la commande UPDATE avec l’instruction WHERE

Elle répond à la syntaxe ci-dessus. Avec WHERE on peut choisir la valeur qu’il faut changer. Ce choix ne se limite pas à une seule valeur, on peut en choisir plusieurs dans une seule requête.

Modifier une seule valeur d’une ligne

La modification porte sur une seule valeur de la colonne de la table. E

On modifie le salaire de l’employé de nom Jack de la ligne 2.

UPDATE employee SET salary = 8000 WHERE id_employee = 2;

Modifier toutes les valeurs d’une ligne

La modification porte sur toutes les valeurs d’une ligne. Donc ici la même ligne de toutes colonnes sont concernées.

On change le nom, prénom, salaire et numéro client de la ligne 3 de la table employee ; autrement on remplace l’employé de nom William par un autre.

UPDATE employee SET last_name = ‘Gustavo’, first_name = ‘Rosy’, salary = 9000, id_customer = 1  WHERE id_employee = 3 ;

Résultat

id_employeelast_namefirst_namesalaryid_customer
1JonesSmith12001
2JackHarry80003
3GustavoRosy90001
4MichaelOliver35001

 

 

 

Utilisation de la commande UPDATE sans l’instruction WHERE

Lorsqu’on utilise la commande UPDATE sans WHERE, les risques portent sur toutes les données d’une colonne ou toutes données d’une table, c’est-à-dire toutes les colonnes de la table. On ne peut pas sélectionner les données à changer sans utiliser la clause WHERE.

UPDATE nom_table SET nom_colonne ;

Ou

UPDATE nom_table SET nom_colonne1, … nom_colonne(n) ;

Sur une seule colonne de la table

La modification concerne toutes les valeurs d’une colonne de la table

Ici sans la clause WHERE, la modification ou la mise à jour ne peut porter que sur toute la colonne.

Exemple on met à jour la colonne nom de la table employee.

UPDATE employee SET last_name = ‘Puter’ ;

Résultat

id_employeelast_namefirst_namesalaryid_customer
1PuterSmith12001
2PuterHarry60303
3PuterJames70052
4PuterOliver35001

 

 

 

 

Sur toutes les colonnes de la table

Toutes les données de la table changent. C’est donc tous les attributs de la table qui sont conernés par la commande UPDATE.

Par exemple on met à jour le nom, prénom, salaire et numéro client de l’employé du nom Luca, prénom Robyn avec salaire de 5000 et numéro de client 2.

UPDATE employee SET last_name= ‘Luca’, first_name =’Robyn’, salary=5000, id_customer = 2;

Résultat

id_employeelast_namefirst_namesalaryid_customer
1LucaRobyn50002
2LucaRobyn50002
3LucaRobyn50002
4LucaRobyn50002

 

 

 

 

 

Remarque : Il faut être prudent avec l’utilisation de la commande UPDATE dans une base de données. La commande sous-entend comme mise à jour qui est en fait un changement total d’une ou de plusieurs valeurs d’une colonne d’une table.