formations / mysql / mysql-requete-update

Débutant
cgoupil1970 | 24-11-2023

MySql - Requête UPDATE

La requête UPDATE est utilisée pour modifier les données d'une table dans une base de données SQL. Elle permet de modifier une ou plusieurs colonnes d'une ou plusieurs lignes d'une table.

Syntaxe de la requête

La requête update est simple à utiliser et sa syntaxe n'est pas non plus très compliquée. Il suffit de déclarer la commande SQL Update suivie du nom de la table, ensuite à l'aide de la clause SET on énumère les colonnes et leurs valeurs impactées par la mise à jour. Les colonnes et leurs valeurs sont séparées par des virgules. Enfin, on utilise la clause WHERE afin spécifier quelle ligne de la table doit-être mise à jour, comme l'illuste la ligne ci-dessous.

UPDATE nom_table SET colonne1 = valeur1, colonne2 = valeur2, colonne3 = valeur3 WHERE id=12;

L'exemple ci-dessous illustre une requête de mise à jour pour les valeurs de 3 colonnes et pour la ligne de la table dont l'id est 12.


Exemple

Repartons de la base de données nommées "base_demo" que nous avons pu créer dans les tutoriels précédents et regardons la table "utilisateurs". Cette table a également été peuplée dans les exemples précédents. Nous allons mettre à jour l'adresse email de la ligne 1

Nous allons donc, comme évoqué en introduction faire le script suivant :

UPDATE utilisateurs SET email = "joseph.roy@gmail.com" WHERE id=1;

Après l'exécution du script la donnée de l'email est bien mise à jour dans la table pour l'id 1


Mettre à jour toutes les lignes de la table

Afin de mettre à jour toutes une ou plusieurs colonnes de toutes les lignes d'une table nous allons commencer par modifier la table des utilisateurs afin de lui ajouter une colonne nommée "age" qui pourra être nulle, nous allons nous référerer à ce que nous avons pu voir dans le tutoriel sur les scripts de table en lançant le script suivant :

ALTER TABLE utilisateurs ADD age FLOAT DEFAULT NULL;

Après l'exécution du script, toutes les lignes de la table sont maintenant comme celle ci-dessous, la colonne nommée "age" avec la valeur NULL a bien été ajoutée.

Maintenant nous pouvons mettre en œuvre le script qui va permettre de mettre à jour toutes les lignes de la table et on l'exécute pour que toutes les lignes passent de la valeur d'age NULL à 30. Le script est ci-dessous :

 

 

UPDATE utilisateurs SET age=30;

Attention ce type d'update sans clause WHERE est à utiliser avec précaution puisqu'il change toutes les lignes de la table.


Mettre à jour avec une valeur calculée

Il est également possible de mettre à jour une valeur à l'aide d'une valeur calculée. Dans le script qui suit nous allons mettre à jour l'age de l'utilisateur de l'id 1 en lui ajoutant 15 et nous allons également soustraire 7 pour l'utilisateur ayant l'id 4.

UPDATE utilisateurs SET age = age+10 WHERE id=1;
UPDATE  utilisateurs SET age = age - 7 WHERE id=4;

Mettre à jour une colonne avec la valeur d'une autre colonne

On peut mettre à jour une donnée en utilisant la valeur d'une autre colonne. Imaginons par exemple que nos utilisateurs gagnent des badges en participant à des activités dans le site, comme par exemple en donnant des réponses pertinentes au forum du site ou de l'application et que le nombre de badge détermine un nombre de points de crédibilité.

Pour mettre en place cette fonctionnalité, nous allons dans un premier temps ajouter deux colonnes avec la valeur 0 par défaut. Il s'agira des colonnes nommées "badges" et "points".

ALTER TABLE utilisateurs ADD badges INT DEFAULT 0, ADD points INT DEFAULT 0;

Les deux colonnes sont ajoutées, maintenant nous ajoutons trois badges à l'utilisateur ayant l'id 1 comme vu précédemment.

UPDATE utilisateurs SET badges = 3 WHERE id=1;

On peut maintenant mettre à jour le nombre de points (10 points par badge) pour notre utilisateur (id=1)

UPDATE utilisateurs SET points = badges*10 WHERE id=1;

Nous voyons le résultat de nos dernières requêtes. Le nombre de badge est bien de 3 et le nombre de points de 30.

Voila pour une prise en main de la mise à jour des données dans une table. On peut maintenant s'attaquer à la suppression, qu'elle soit physique ou logique.

Tutos du jour

MySql - Tables & relations

Dans une base de données relationnelle, les données sont stockées dans des tables qui sont liées entre elles par des relations.

Voir le tuto
Environnement de travail local

Environnement de travail local

Pour faire du Php en local, il est nécessaire d'installer préalablement un environnement d'émulation de serveurs Apache et Mysql

Voir le tuto
Votre inscription à la newsletter a bien été prise en compte. Une erreur est survenue lors de l'inscription à la newsletter. Votre désinscription à la newsletter a bien été prise en compte. Une erreur est survenue lors de la désinscription à la newsletter.

Inscription à la newsletter

Désinscription de la newsletter