Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mettre à jour la requête pour mettre à jour les lignes dans MySQL

Ce didacticiel fait partie de la série Apprendre les requêtes SQL de base à l'aide de MySQL. Dans ce tutoriel, nous aborderons les requêtes SQL pour mettre à jour les lignes ou données d'une table dans MySQL.

Mettre à jour la requête

La commande MISE À JOUR peut être utilisé pour modifier ou mettre à jour des lignes d'une table à l'aide du mot-clé SET. Si vous êtes connecté à distance à la base de données, vous aurez également besoin du privilège UPDATE pour la table afin de lire les lignes d'une table.

# UPDATE - Syntax
UPDATE `table_name` SET `column_1` = <value>, `column_2` = <value> ... [WHERE <single or multiple filter conditions>];

Explication de la requête

La commande MySQL UPDATE peut être utilisé pour modifier des lignes ou des données du nom de table donné où le nom de la colonne, la valeur de la ligne et le nom de la table sont obligatoires. Le SET mot-clé est requis pour définir la nouvelle valeur de colonne.

Nous devons spécifier au moins une colonne et sa nouvelle valeur lors de l'utilisation de la requête UPDATE. La valeur doit être placée entre guillemets simples s'il s'agit d'une valeur de chaîne.

Nous devons également spécifier les conditions à prendre en compte lors de la mise à jour des lignes. L'utilisation de la clause WHERE avec la commande UPDATE est nécessaire lorsque nous devons mettre à jour de manière sélective les lignes qui est le scénario idéal. Nous pouvons omettre d'utiliser WHERE lors de l'utilisation de la commande UPDATE, mais cela entraînera des problèmes de performances si les données de la table sont volumineuses.

Exemples

Cette section fournit des exemples pour mettre à jour les lignes de la table à l'aide de la commande UPDATE. Utilisez la requête mentionnée ci-dessous pour créer la table utilisateur avec l'identifiant, le prénom, le nom et les colonnes actives pour stocker les données utilisateur.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

La requête ci-dessous peut être utilisée pour insérer des données dans la table des utilisateurs.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

La requête mentionnée ci-dessus insérera 5 lignes dans le tableau ayant l'identifiant, le prénom, le nom et les colonnes actives pour représenter 5 utilisateurs différents.

Nous allons maintenant mettre à jour les données que nous avons insérées dans la table des utilisateurs. Cela peut être fait en utilisant la commande UPDATE comme indiqué ci-dessous.

# UPDATE - Activate all the inactive users - without key column
UPDATE `user` SET `active` = 1 WHERE `active` = 0;

# Notes - Workbench - You might need to disable safe updates in case the primary key is not used in WHERE clause
SET SQL_SAFE_UPDATES = 0;
UPDATE `user` SET `active` = 1 WHERE `active` = 0;
SET SQL_SAFE_UPDATES = 0;

# Result
1 John Smith 1
2 Rick Jones 1
3 Catherine Ponting 1
4 Harsh Upadhyay 1
5 Tajwinder Singh 1


# UPDATE - Deactivate selective users - with key column
UPDATE `user` SET `active` = 0 WHERE `user_id` = 1;
UPDATE `user` SET `active` = 0 WHERE `user_id` IN( 3, 5 );

# Result
1 John Smith 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0

Les requêtes mentionnées ci-dessus mettent à jour la table des utilisateurs à l'aide de la clause WHERE. Les lignes du tableau seront mises à jour si la ligne remplit les conditions données.

Nous pouvons également mettre à jour plusieurs valeurs de colonne, comme indiqué ci-dessous.

# UPDATE - Modify first name and last name of first user
UPDATE `user` SET `first_name` = 'Roy', `last_name` = 'Jordan' WHERE `user_id` = 1;

# Result
1 Roy Jordan 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0

C'est ainsi que nous pouvons modifier les données stockées dans les tables MySQL.