MySQL Instruction DELETE

Vous pouvez utiliser la commandeDELETE FROMpour supprimer des enregistrements des tables de données MySQL.

Vous pouvez exécuter cette commande dans l'invite de commandemysql>ou dans un script PHP.

Syntaxe

Voici la syntaxe générale de l'instruction DELETE pour supprimer des données des tables de données MySQL :

DELETE FROM table_name
WHERE condition;

Description du paramètre :

  • table_nameest le nom de la table de laquelle vous souhaitez supprimer des données.
  • WHERE conditionest une clause facultative utilisée pour spécifier les lignes à supprimer. Si vous omettez laWHEREclause, toutes les lignes de la table seront supprimées.

Remarques supplémentaires :

  • Si aucune clause WHERE n'est spécifiée, tous les enregistrements de la table MySQL seront supprimés.
  • Vous pouvez spécifier n'importe quelle condition dans la clause WHERE.
  • Vous pouvez supprimer des enregistrements d'une seule table en une seule opération.

La clause WHERE est très utile lorsque vous souhaitez supprimer des enregistrements spécifiques d'une table de données.

Exemples

Les exemples suivants montrent comment utiliser l'instruction DELETE.

1. Supprimer les lignes qui remplissent les conditions :

DELETE FROM students
WHERE graduation_year = 2021;

L'instruction SQL ci-dessus supprime tous les enregistrements des étudiants dont graduation_year est 2021 dans la table students.

2. Supprimer toutes les lignes :

DELETE FROM orders;

L'instruction SQL ci-dessus supprime tous les enregistrements de la table orders, mais la structure de la table reste inchangée.

3. Utiliser une sous-requête pour supprimer les lignes qui remplissent les conditions :

DELETE FROM customers
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
    WHERE order_date < '2023-01-01'
);

L'instruction SQL ci-dessus utilise une sous-requête pour supprimer les clients correspondant aux commandes passées avant '2023-01-01' dans la table orders.

Remarque :Lorsque vous utilisez l'instruction DELETE, assurez-vous de fournir suffisamment de conditions pour garantir que seules les lignes que vous souhaitez supprimer sont supprimées. Si vous ne fournissez pas de clause WHERE, toutes les lignes de la table seront supprimées, ce qui peut conduire à des résultats imprévisibles.


Suppression de données depuis la ligne de commande

Ici, nous utiliserons la clause WHERE dans la commande DELETE pour supprimer les données sélectionnées de la table de données MySQL example_tbl.

Exemple

L'exemple suivant supprime l'enregistrement dont l'example_id est 3 dans la table example_tbl :

Instruction DELETE :

mysql> use EXAMPLE; Base de données modifiée mysql> DELETE FROM example_tbl WHERE example_id=3; Requête OK, 1 ligne affectée (0.23 sec)

Suppression de données à l'aide d'un script PHP

PHP utilise la fonction mysqli_query() pour exécuter des instructions SQL. Vous pouvez utiliser la commande DELETE avec ou sans la clause WHERE.

Cette fonction a le mêmemysql>effet que l'exécution de commandes SQL dans l'invite de commandes.

Exemple

L'exemple PHP suivant supprimera l'enregistrement dont l'example_id est 3 de la table example_tbl :

Test de la clause DELETE MySQL :

<?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 pour éviter les caractères chinois corrompus. mysqli_query($conn , "set names utf8"); $sql = 'DELETE FROM example_tbl WHERE example_id=3'; mysqli_select_db( $conn, 'EXAMPLE' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('Impossible de supprimer les données :' . mysqli_error($conn)); } echo 'Données supprimées avec succès !'; mysqli_close($conn); ?>
Autres extensions