mysql update statement tutorial update query syntax examples
Ce tutoriel explique l'instruction MySQL UPDATE avec la syntaxe de requête et des exemples. Vous apprendrez également différentes variantes de la commande de table de mise à jour MySQL:
Comme pour toute autre base de données, nous avons toujours besoin de mettre à jour ou de modifier ou de changer les données existantes dans les tables. Dans MySQL, nous avons l'instruction UPDATE qui peut être utilisée pour mettre à jour ou modifier les données de la table.
En utilisant cette commande, nous pouvons mettre à jour un ou plusieurs champs. Nous pouvons mettre à jour les valeurs d'une table particulière à la fois. En utilisant la clause WHERE, nous pouvons spécifier les conditions utilisées en particulier lorsqu'il est nécessaire de mettre à jour des lignes spécifiques d'une table.
Avant de continuer, veuillez noter que nous utilisons MySQL version 8.0. Vous pouvez le télécharger sur ici.
Ce que vous apprendrez:
- Syntaxe de la table MySQL UPDATE
- Commande de table MySQL UPDATE
- # 1) MySQL mettant à jour une seule colonne
- # 2) MySQL met à jour plusieurs colonnes
- # 3) Mise à jour de MySQL avec la fonction REPLACE
- # 4) MySQL UPDATE en utilisant l'instruction SELECT
- # 5) MySQL UPDATE plusieurs lignes
- # 6) MISE À JOUR MySQL à l'aide du mot-clé INNER JOIN
- # 7) MISE À JOUR MySQL en utilisant le mot-clé LEFT JOIN
- Foire aux questions et réponses
- Conclusion
Syntaxe de la table MySQL UPDATE
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;
Explication de la syntaxe:
- La syntaxe commence par le mot-clé «UPDATE», informant ainsi le serveur MySQL du type d'activité à effectuer. Ceci est un mot-clé obligatoire et ne peut pas être omis.
- Vient ensuite le nom de la table sur laquelle l'action de mise à jour doit être effectuée. Ceci est obligatoire et ne peut être omis.
- Troisièmement, est à nouveau un mot-clé - SET. Ce mot clé informe MySQL Server des valeurs à mettre à jour pour les noms de colonne. Ceci est un mot-clé obligatoire et ne peut pas être omis.
- Ensuite, seront les noms de colonnes à mettre à jour avec leurs valeurs correspondantes. Ceci est également obligatoire et ne peut être omis.
- Vient ensuite la condition WHERE, qui limite ou filtre le nombre de lignes cibles sur lesquelles l'action UPDATE doit être appliquée. WHERE est également un mot-clé, mais facultatif.
La clause WHERE est cependant significative. S'il n'est pas mentionné, ou si la condition n'est pas définie correctement, ni la table ni les lignes non requises ne seront mises à jour.
Modificateurs dans une instruction de table UPDATE
Vous trouverez ci-dessous les modificateurs dans une instruction UPDATE.
PRIORITÉ BASSE: Ce modificateur informe le moteur MySQL de retarder la mise à jour jusqu'à ce qu'il n'y ait pas de lecture de connexion à partir de la table.
IGNORER: Ce modificateur informe MySQL Engine de continuer l'opération UPDATE même s'il y a des erreurs. Aucune action de mise à jour n'est effectuée sur les lignes qui ont provoqué des erreurs.
Exemple de mise à jour MySQL
Ci-dessous, un exemple de table créé dans MySQL.
Nom du schéma: pacifique
Nom de la table: des employés
Noms de colonne:
- empNum - Contient des valeurs entières pour le numéro d'employé.
- lastName - Contient les valeurs varchar pour le nom de famille de l'employé.
- firstName - Contient les valeurs varchar pour le prénom de l'employé.
- email - Contient les valeurs varchar pour l'ID de messagerie de l'employé.
- deptNum - Contient varchar pour l'ID de service auquel appartient un employé.
- salaire - Contient des valeurs décimales de salaire pour chaque employé.
Nom du schéma: pacifique
Nom de la table: départements
Noms de colonne:
- deptNum - Contient varchar pour l'ID de service au sein d'une organisation.
- city - Contient le nom de la ville dans laquelle les services travaillent.
- country - Contient le nom du pays correspondant à la ville.
- bonus - Contient la valeur en pourcentage du bonus.
Commande de table MySQL UPDATE
# 1) MySQL mettant à jour une seule colonne
Voyons maintenant un enregistrement que nous souhaiterions mettre à jour. Tout d'abord, nous examinerons un scénario dans lequel nous devons mettre à jour une seule colonne à l'aide du mot clé UPDATE.
Voici un employé avec le numéro d'employé 1008.
La requête et ses résultats correspondants sont les suivants:
Mettons à jour l'ID de messagerie de cet employé de ob@gmail.com à oliver.bailey@gmail.com, à l'aide du mot clé UPDATE.
METTRE À JOUR: Le mot-clé informe le moteur MySQL que l'instruction concerne la mise à jour d'une table.
ENSEMBLE: Cette clause définit la valeur du nom de colonne mentionné après ce mot clé sur une nouvelle valeur.
OÙ: Cette clause spécifie la ligne particulière qui doit être mise à jour.
Après l'exécution de l'instruction UPDATE, la sortie affichera les statistiques liées à l'exécution de l'instruction.
Voici les détails qui s'affichent:
- Une déclaration qui a été exécutée.
- Messages qui indiquent le nombre de lignes qui ont été mises à jour et s'il y a eu des avertissements.
Afin de vérifier la sortie de l'instruction UPDATE, réexécutons l'instruction SELECT pour voir la modification de l'ID de messagerie.
Instantané de la table avant:
empNum | Prénom | nom de famille | deptNum | |
---|---|---|---|---|
7 | Rome | Italie | ||
1008 | Oliver | Bailey | ob@gmail.com | 3 |
Mettre en doute:
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ;
Instantané du tableau après:
empNum | Prénom | nom de famille | deptNum | |
---|---|---|---|---|
1008 | Oliver | Bailey | oliver.bailey@gmail.com | 3 |
# 2) MySQL met à jour plusieurs colonnes
La syntaxe pour mettre à jour plus d'une colonne à l'aide de l'instruction UPDATE est la même que celle de la mise à jour d'une seule colonne. Une seule instruction SET aura plusieurs noms de colonne avec sa nouvelle valeur qui doit être définie, séparés par une virgule.
Jetons un coup d'œil à la ligne que nous devons mettre à jour. Ligne avec le numéro d'employé 1003.
Ici, nous allons essayer de mettre à jour le nom de famille de «Mary» à «Margaret», puis l'ID de courrier électronique de ml@gmail.com à margaret.langaley@gmail.com.
Voici la requête UPDATE. Observez les noms de colonnes séparés par une virgule.
La sortie de l'exécution ci-dessus affiche les mêmes statistiques que dans le cas précédent.
Voici la sortie pour le même enregistrement après l'exécution de l'instruction UPDATE.
Instantané de la table avant:
empNum | Prénom | nom de famille | deptNum | |
---|---|---|---|---|
1003 | Marie | Langley | ml@gmail.com | deux |
Mettre en doute:
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ;
Instantané du tableau après:
empNum | Prénom | nom de famille | deptNum | |
---|---|---|---|---|
1003 | Margaret | Langley | margaret.langley@gmail.com | 3 |
# 3) Mise à jour de MySQL avec la fonction REPLACE
Voyons en savoir plus sur l'utilisation de la fonction REPLACE pour METTRE À JOUR une ligne du tableau. Voici notre record cible que nous souhaitons mettre à jour.
L'enregistrement ci-dessous concerne l'employé numéro 1010. Nous nous efforcerons de mettre à jour l'ID de courrier électronique de ja@gmail.com à jacob.armstrong@gmail.com.
Utilisons la requête UPDATE suivante avec la fonction REPLACE qui mettra à jour l'ID de messagerie.
Voici les paramètres qui sont passés dans la fonction REPLACE. Les 3 paramètres sont de nature positionnelle, c'est-à-dire que l'ordre des paramètres ne peut pas être modifié.
1stParamètre - Contient le nom de l'ID de messagerie.
deuxndParamètre - Contient l'ID de messagerie FROM à modifier.
3rdParamètre - Contient l'ID de messagerie TO qui est la nouvelle valeur.
Voici un instantané de la table après l'exécution de l'instruction UPDATE:
Instantané de la table avant:
empNum | Prénom | nom de famille | deptNum | |
---|---|---|---|---|
1010 | Jacob | Armstrong | ja@gmail.com | 4 |
Mettre en doute:
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ;
Instantané du tableau après:
empNum | Prénom | nom de famille | deptNum | |
---|---|---|---|---|
1010 | Jacob | Armstrong | jacob.armstrong@gmail.com | 4 |
# 4) MySQL UPDATE en utilisant l'instruction SELECT
Dans ce type de UPDATE, la nouvelle valeur de la colonne à mettre à jour est récupérée par une instruction SELECT dans une sous-requête. Alors, prenons un exemple ici de notre tableau «employés». Voici notre record cible que nous souhaitons mettre à jour.
Dans ce cas, nous mettrons à jour le numéro de département, c'est-à-dire la colonne deptNum, en utilisant les tables de départements. Si nous regardons le tableau des départements, le deptNum = 5 correspond à Berlin. Déplaçons cet employé vers Charlotte à deptNum = 2.
Afin d'accomplir cette tâche, l'instruction UPDATE suivante est utilisée:
Afin de vérifier la sortie de notre instruction UPDATE, exécutons le SÉLECTIONNER déclaration.
Comme indiqué ci-dessus, la valeur de la colonne deptNum a été mise à jour à «2».
Instantané de la table avant:
empNum | Prénom | nom de famille | deptNum | |
---|---|---|---|---|
1005 | Peter | lire | pl@gmail.com | 5 |
deptNum | Ville | De campagne |
---|---|---|
1 | New York | États-Unis |
deux | Charlotte | États-Unis |
3 | Chicago | États-Unis |
4 | Londres | Angleterre |
5 | Berlin | Allemagne |
6 | Bombay | Inde |
Mettre en doute:
Instantané du tableau après:
empNum Prénom nom de famille e-mail deptNum 7 Rome Italie NUL 1005 Peter lire pl@gmail.com deux
# 5) MySQL UPDATE plusieurs lignes
Parfois, nous pouvons être confrontés à une exigence dans laquelle nous devons mettre à jour une ou plusieurs colonnes pour plusieurs lignes avec des valeurs différentes.
Par exemple, nous voulons donner un montant particulier de bonus par département, c'est-à-dire que tous les employés d'un département devraient recevoir un montant particulier de bonus.
comment utiliser la commande grep sous unix
La syntaxe générale est la suivante:
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END;
Pour expliquer cela avec un exemple, ajoutons une colonne supplémentaire aux tables de service. Nous ajouterons la colonne «bonus» à la table des départements. L'idée est d'attribuer un pourcentage de bonus à chaque département et d'augmenter le salaire des employés de ce pourcentage correspondant à chaque département.
Pour ce faire, nous exécuterons les instructions ALTER suivantes pour ajouter une colonne:
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);
Ce qui suit serait la structure du tableau après les modifications ci-dessus. Les nouvelles colonnes seront ajoutées avec NUL comme valeur.

Ensuite, écrivons la requête UPDATE qui mettra à jour le pourcentage de bonus pour chaque département.

Après l'exécution de l'instruction ci-dessus, ce qui suit est l'instantané avec les valeurs mises à jour pour la colonne Bonus.

Instantané de la table avant:
deptNum Ville De campagne Prime 1 New York États-Unis NUL deux Charlotte États-Unis NUL 3 Chicago États-Unis NUL 4 Londres Angleterre NUL 5 Berlin Allemagne NUL 6 Bombay Inde NUL
Mettre en doute:
UPDATE departments SET bonus = CASE WHEN deptNum = 1 THEN 3.00 WHEN deptNum= 2 THEN 5.00 WHEN deptNum= 3 THEN 8.00 WHEN deptNum= 4 THEN 10.00 WHEN deptNum= 5 THEN 13.00 WHEN deptNum= 6 THEN 15.00 WHEN deptNum= 7 THEN 18.00 END;
Instantané du tableau après:
deptNum Ville De campagne Prime 7 Rome Italie 18 1 New York États-Unis 3 deux Charlotte États-Unis 5 3 Chicago États-Unis 8 4 Londres Angleterre dix 5 Berlin Allemagne 13 6 Bombay Inde quinze
# 6) MISE À JOUR MySQL à l'aide du mot-clé INNER JOIN
REJOINDRE est l'un des mots clés les plus importants des instructions SQL. Habituellement, vous l'avez peut-être utilisé dans l'instruction SELECT.
Il existe essentiellement quatre types d'instructions JOIN:
- JOINTURE INTERNE: Récupère les enregistrements communs aux deux tables.
- JOINT GAUCHE: Récupère tous les enregistrements de la table sur le côté gauche du mot-clé et les enregistrements correspondants de la table sur le côté droit du mot-clé.
- JOINDRE DROIT: Récupère tous les enregistrements de la table sur le côté droit du mot-clé et les enregistrements correspondants de la table sur le côté gauche du mot-clé.
- JOINTURE EXTÉRIEURE: Récupère tous les enregistrements des deux tables, avec les enregistrements incompatibles correspondants représentés comme NULL.
MySQL offre une opportunité unique d'utiliser JOIN, même dans les instructions UPDATE, pour effectuer des mises à jour inter-tables. Cependant, il est limité uniquement à INNER JOIN et LEFT JOIN.
La syntaxe générique de l'instruction UPDATE utilisant le mot clé JOIN est la suivante:
UPDATE TAB1, TAB2, (INNER JOIN | LEFT JOIN) TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition
- Ici, l'instruction UPDATE attend trois éléments de données.
- Noms de table, TAB1 et TAB2, sur lesquels la jointure est effectuée.
- Type de JOIN que nous avons l'intention d'effectuer, INTERNE ou GAUCHE.
- Suit ensuite la commande SET à l'aide de laquelle nous pouvons mettre à jour les valeurs de colonne dans / ou TAB1 et TAB2.
- Enfin, une clause WHERE pour mettre à jour uniquement les lignes qui correspondent à nos critères.
Pour expliquer cela avec un exemple, ajoutons une colonne supplémentaire à la table Employés. Nous ajouterons la colonne «salaire» à la table Employés. L'idée est d'augmenter le salaire des employés d'un pourcentage de bonus présent dans la colonne bonus du tableau des départements.
Pour ce faire, nous exécuterons les instructions ALTER suivantes pour ajouter une colonne:
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);
Ensuite, nous remplirons les deux nouveaux champs que nous avons ajoutés. Après avoir rempli les valeurs, voici le contenu de la table.
Table des employés:
empNum Prénom nom de famille e-mail deptNum Un salaire 1007 Schmitt James js@gmail.com 4 18 000 1001 Andrews Jack ja@gmail.com 1 3000 1002 Schwatz Mike ms@gmail.com 1 5000 1003 Langley Margaret margaret.langley@gmail.com deux 8 000 1004 Harera Sandra sh@gmail.com 1 10 000 1005 lire Peter pl@gmail.com deux 13 000 1006 Keith Jenny jk@gmail.com deux 15 000 1008 Bailey Oliver oliver.bailey@gmail.com 3 21 000 1009 tasse Harry hb@gmail.com 5 24 000 1010 Armstrong Jacob jacob.armstrong@gmail.com 4 27 000
Maintenant, utilisons le mot-clé JOIN et mettons à jour le salaire de tous les employés avec un pourcentage de bonus dans le tableau des départements. Ici, deptNum est la clé sur laquelle les deux tables seront appariées.
F Voici un aperçu des salaires des employés à l'heure actuelle:

L'instantané du tableau des départements est le suivant:

Voici la requête UPDATE qui mettra à jour le salaire des employés en fonction du pourcentage de bonus dans les tables des départements en fonction de la colonne de clé deptNum.

Maintenant, vérifions le salaire de chaque employé après la hausse.

Si vous le comparez avec l'instantané précédent, vous pouvez facilement comprendre le pourcentage de bonus ajouté au salaire.
Tous les employés doivent applaudir!
Instantané de la table avant:
empNum Prénom nom de famille e-mail deptNum Un salaire 1007 Schmitt James js@gmail.com 4 18 000 1001 Andrews Jack ja@gmail.com 1 3000 1002 Schwatz Mike ms@gmail.com 1 5000 1003 Langley Margaret margaret.langley@gmail.com deux 8 000 1004 Harera Sandra sh@gmail.com 1 10 000 1005 lire Peter pl@gmail.com deux 13 000 1006 Keith Jenny jk@gmail.com deux 15 000 1008 Bailey Oliver oliver.bailey@gmail.com 3 21 000 1009 tasse Harry hb@gmail.com 5 24 000 1010 Armstrong Jacob jacob.armstrong@gmail.com 4 27 000
deptNum Ville De campagne Prime 7 Rome Italie 18 1 New York États-Unis 3 deux Charlotte États-Unis 5 3 Chicago États-Unis 8 4 Londres Angleterre dix 5 Berlin Allemagne 13 6 Bombay Inde quinze
Mettre en doute:
UPDATE employees INNER JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * bonus)/100) ;
Instantané du tableau après:
empNum Prénom nom de famille e-mail deptNum Un salaire 1007 Schmitt James js@gmail.com 4 21780 1001 Andrews Jack ja@gmail.com 1 3182,7 1002 Schwatz Mike ms@gmail.com 1 5304,5 1003 Langley Margaret margaret.langley@gmail.com deux 8820 1004 Harera Sandra sh@gmail.com 1 10609 1005 lire Peter pl@gmail.com deux 14332,5 1006 Keith Jenny jk@gmail.com deux 16537,5 1008 Bailey Oliver oliver.bailey@gmail.com 3 24494,4 1009 tasse Harry hb@gmail.com 5 30645,6 1010 Armstrong Jacob jacob.armstrong@gmail.com 4 32670
# 7) MISE À JOUR MySQL en utilisant le mot-clé LEFT JOIN
Comme expliqué dans la section précédente, il existe deux types de JOIN qui sont autorisés dans MySQL UPDATE. Nous avons déjà vu UPDATE en utilisant INNER JOIN.
Commençons par UPDATE en utilisant LEFT JOIN.
Exemple:
Nous avons un nouvel employé qui n'a encore été affecté à aucun service. Mais nous devons donner à toutes les nouvelles recrues un bonus de 1%. Désormais, la nouvelle recrue n'étant affectée à aucun service, nous ne pourrons plus obtenir d'informations sur le pourcentage de bonus à partir de ce tableau. Dans un tel cas, nous mettrons à jour le salaire des nouveaux employés en utilisant LEFT JOIN.
Pour ce faire, ajoutons un nouvel employé à la base de données des employés.
INSERT INTO employees(empNum, firstName, lastName, email, deptNum, Salary) VALUES (1011, “Tom”, “Hanks”, th@gmail.com, NULL, 10000.00);
Voici le nouvel enregistrement que nous avons ajouté:

Table des employés:
empNum Prénom nom de famille e-mail deptNum Un salaire 1007 Schmitt James js@gmail.com 4 21780 1001 Andrews Jack ja@gmail.com 1 3183 1002 Schwatz Mike ms@gmail.com 1 5305 1003 Langley Margaret margaret.langley@gmail.com deux 8820 1004 Harera Sandra sh@gmail.com 1 10609 1005 lire Peter pl@gmail.com deux 14333 1006 Keith Jenny jk@gmail.com deux 16538 1008 Bailey Oliver oliver.bailey@gmail.com 3 24494 1009 tasse Harry hb@gmail.com 5 30646 1010 Armstrong Jacob jacob.armstrong@gmail.com 4 32670 1011 Hanks À M th@gmail.com NUL 10 000
Ensuite, nous donnerons à Tom un bonus de 1% en plus de son salaire en utilisant l'instruction UPDATE avec la clause LEFT JOIN:

Ci-dessous, le salaire de TOM après la randonnée.

Si vous le comparez à l'instantané précédent, vous pouvez facilement comprendre le% de bonus ajouté au salaire.
Instantané de la table avant:
empNum Prénom nom de famille e-mail deptNum Un salaire 1011 À M Hanks th@gmail.com NUL 10 000
Mettre en doute:
UPDATE employees LEFT JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * 1)/100) WHERE employees.deptNum IS NULL ;
Instantané du tableau après:
empNum Prénom nom de famille e-mail deptNum Un salaire 1011 À M Hanks th@gmail.com NUL 10100
Lecture recommandée = >> Jointures MySQL
Foire aux questions et réponses
Q # 1) Comment mettre à jour les attributs dans MySQL?
Répondre: Nous pouvons mettre à jour les attributs à l'aide de l'instruction MySQL UPDATE, l'instruction commençant par le mot clé UPDATE suivi du nom de la table. Vient ensuite la clause SET suivie d'un nom de colonne et d'une clause WHERE.
Q # 2) Comment mettre à jour plusieurs enregistrements dans MySQL?
Répondre: Comme illustré ci-dessus, sous le 'Mettre à jour plusieurs lignes' section, nous pouvons mettre à jour plusieurs lignes pour une ou plusieurs colonnes avec des valeurs identiques ou différentes à l'aide de l'instruction CASE.
Q # 3) Pouvons-nous utiliser JOIN dans la requête de mise à jour dans MySQL?
Répondre: Oui, MySQL permet d'utiliser JOIN dans les instructions UPDATE. Cependant, il est limité uniquement à INNER et LEFT JOIN.
Q # 4) D'où télécharger MySQL?
Répondre: Vous pouvez télécharger la version 8.0 de MySQL à partir d'ici: MySQL .
Q # 5) Quelle est la signification de la clause WHERE dans l'instruction Update?
Répondre: La clause WHERE limite le nombre de lignes devant tenir dans les critères de la clause UPDATE.
Suggestion de lecture = >> Comment utiliser le Instruction MySQL If
Conclusion
Ainsi, dans ce tutoriel, nous avons appris 7 façons différentes d'exécuter des instructions MySQL UPDATE.
- Mettre à jour une seule colonne
- Mettre à jour plusieurs colonnes
- Mettre à jour avec REPLACE
- Mettre à jour avec SELECT
- Mettre à jour plusieurs lignes
- Mettre à jour avec INNER JOIN
- Mettre à jour avec LEFT JOIN
Nous pouvons utiliser l'un ou l'autre, en fonction de nos besoins.
Bonne lecture!!
lecture recommandée
- Différence entre SQL et MySQL et SQL Server (avec exemples)
- Top 40 des meilleures questions et réponses d'entretien MySQL (questions 2021)
- Mise à jour et suppression de documents MongoDB avec des exemples
- Tutoriel sur l'utilisation de l'instruction C # et la méthode virtuelle C # avec des exemples
- Tutoriel sur les instructions conditionnelles C #
- Tutoriel de réflexion Java avec des exemples
- Tutoriel Python DateTime avec des exemples
- Tutoriel Bugzilla: Tutoriel pratique de l'outil de gestion des défauts