formations / mysql / mysql-requete-update
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;
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
Connexion PHP & Bases de données
En PHP, il est possible d'interagir avec des bases de données, notamment MySQL. Pour cela, il existe : MySQLi & PDO
Voir le tutoMySql - Les requêtes de base de données
Nous allons voir l'utilisation des requêtes SQL relatives à la création et la manipulation des bases de données.
Voir le tuto