Mise à jour UPDATE de MySQL

Si nous devons modifier ou mettre à jour des données dans MySQL, nous pouvons utiliser la commandeUPDATE.

Syntaxe

Voici la syntaxe SQL générale de la commande UPDATE pour modifier des données dans les tables MySQL :

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Description du paramètre :

  • table_nameest le nom de la table dans laquelle vous souhaitez mettre à jour des données.
  • column1, column2, ... sont les noms des colonnes que vous souhaitez mettre à jour.
  • value1, value2, ... sont les nouvelles valeurs utilisées pour remplacer les anciennes valeurs.
  • WHERE conditionest une clause facultative utilisée pour spécifier les lignes à mettre à jour. Si laWHEREclause est omise, toutes les lignes de la table seront mises à jour.

Remarques supplémentaires :

  • Vous pouvez mettre à jour un ou plusieurs champs en même temps.
  • Vous pouvez spécifier n'importe quelle condition dans la clause WHERE.
  • Vous pouvez mettre à jour des données dans une seule table en même temps.

La clause WHERE est très utile lorsque vous devez mettre à jour des données pour des lignes spécifiées dans une table de données.

Exemples

Les exemples suivants montrent comment utiliser l'instruction UPDATE.

1. Mettre à jour la valeur d'une seule colonne :

UPDATE employees
SET salary = 60000
WHERE employee_id = 101;

2. Mettre à jour les valeurs de plusieurs colonnes :

UPDATE orders
SET status = 'Shipped', ship_date = '2023-03-01'
WHERE order_id = 1001;

3. Mettre à jour des valeurs à l'aide d'expressions :

UPDATE products
SET price = price * 1.1
WHERE category = 'Electronics';

L'instruction SQL ci-dessus augmente de 10 % le prix de chaque produit de la catégorie 'Electronics'.

4. Mettre à jour toutes les lignes qui remplissent la condition :

UPDATE students
SET status = 'Graduated';

L'instruction SQL ci-dessus met à jour le statut de tous les étudiants en 'Graduated'.

5. Mettre à jour des valeurs à l'aide d'une sous-requête :

UPDATE customers
SET total_purchases = (
    SELECT SUM(amount)
    FROM orders
    WHERE orders.customer_id = customers.customer_id
)
WHERE customer_type = 'Premium';

L'instruction SQL ci-dessus utilise une sous-requête pour calculer le montant total des achats de chaque client de type 'Premium', et met à jour cette valeur dans la colonne total_purchases.

Remarque :Lorsque vous utilisez l'instruction UPDATE, assurez-vous de fournir suffisamment de conditions pour garantir que seules les lignes que vous souhaitez mettre à jour sont modifiées. Si vous ne fournissez pas de clause WHERE, toutes les lignes de la table seront mises à jour, ce qui peut entraîner des résultats imprévisibles.


Mettre à jour des données via l'invite de commandes

Ci-dessous, nous utiliserons la clause WHERE dans la commande UPDATE pour mettre à jour les données spécifiées dans la table example_tbl.

L'exemple suivant met à jour la valeur du champ example_title où example_id vaut 3 dans la table de données :

Instruction SQL UPDATE :

mysql> UPDATE example_tbl SET example_title='Apprendre le C++' WHERE example_id=3; Requête OK, 1 lignes affectées (0.01 sec) mysql> SELECT * from example_tbl WHERE example_id=3; +-----------+--------------+---------------+-----------------+ | example_id | example_title | example_author | submission_date | +-----------+--------------+---------------+-----------------+ | 3| ApprentissageC++ | EXAMPLE.COM | 2016-05-06 | +-----------+--------------+---------------+-----------------+ 1 lignes dans set (0.01 sec)

D'après les résultats, le example_title avec example_id 3 a été modifié.


Mettre à jour les données à l'aide d'un script PHP

En PHP, la fonction mysqli_query() est utilisée pour exécuter des instructions SQL. Vous pouvez utiliser ou omettre la clause WHERE dans l'instruction SQL UPDATE.

Remarque :Ne pas utiliser la clause WHERE mettra à jour toutes les données de la table de données, alors soyez prudent.

Cette fonction a le même effet que d'exécuter l'instruction SQL dans l'mysql>invite de commande.

Exemple

L'exemple suivant met à jour les données dans le champ example_title où example_id est 3.

Test de l'instruction MySQL UPDATE :

<?php $dbhost = 'localhost'; //adresse de l'hôte du serveur MySQL $dbuser = 'root'; //nom d'utilisateur MySQL $dbpass = '123456'; //Mot de passe de l'utilisateur MySQL $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Échec de la connexion :' . mysqli_error($conn)); } //Définir l'encodage des caractères pour éviter les caractères chinois mal affichés mysqli_query($conn , "set names utf8"); $sql = 'UPDATE example_tbl SET example_title="学习 Python" WHERE example_id=3'; mysqli_select_db( $conn, 'EXAMPLE' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('Impossible de mettre à jour les données :' . mysqli_error($conn)); } echo 'Données mises à jour avec succès !'; mysqli_close($conn); ?>
Autres extensions