SQL DELETE : supprimer une ou plusieurs entrées d’une table

La commande SQL DELETE est la méthode la plus simple pour supprimer des entrées dans une table. Elle peut être utilisée avec une clause WHERE pour spécifier les lignes à supprimer. Si la clause WHERE est omise, toutes les entrées de la table seront supprimées.

Qu’est-ce que SQL DELETE ?

Lorsque l’on travaille avec une table, il arrive souvent qu’une entrée soit obsolète et ne doive donc plus figurer dans votre enregistrement. Si vous souhaitez supprimer une telle entrée, le Structured Query Language (SQL) met à votre disposition l’instruction SQL DELETE. Avec cette instruction, vous demandez au système de supprimer une ou plusieurs entrées. Pour s’assurer que seules les données souhaitées sont retirées de la table, l’utilisation de la commande WHERE est très importante. Si vous ne l’utilisez pas, toutes les entrées seront supprimées du tableau. La plus grande prudence est donc de mise !

Serveurs virtuels (VPS)
Faites le choix de la performance
  • Virtualisation complète avec accès root
  • Trafic illimité et jusqu'à 1 Gbit/s de bande passante
  • Stockage SSD NVMe rapide et édition Plesk Web Host

Syntaxe et fonctionnement

Dans la syntaxe de SQL DELETE, la spécification est implicite grâce à l’ajout de WHERE. La commande SQL se forme donc toujours de cette manière :

DELETE FROM Nom_de_la_table
WHERE Condition;
sql

Dans la première ligne, vous lancez la commande proprement dite et spécifiez dans quelle table la suppression doit être effectuée. La deuxième ligne est optionnelle. Vous indiquez ici la condition qu’une ligne doit remplir pour être prise en compte pour la suppression. Si vous renoncez à cette option, le système prend en compte toutes les lignes de ce tableau et les supprime.

Supprimer une ou plusieurs entrées

La manière la plus simple d’expliquer le fonctionnement de SQL DELETE est de prendre un exemple. Pour cela, nous créons une table fictive appelée « Liste de clients ». Celle-ci contient différentes entrées relatives aux clients d’une entreprise et comprend un numéro de client, le nom et l’emplacement. Voici à quoi ressemble ce tableau :

Numéro de client Nom Ville
1427 Berron Paris
1377 Froissy Strasbourg
1212 Sulis Strasbourg
1431 Verdon Toulouse
1118 Paré Compiègne

Si vous souhaitez maintenant supprimer le client Froissy de votre liste, appliquez l’instruction comme suit :

DELETE FROM Liste de clients
WHERE Numéro de client = 1377;
sql

Comme seul le client Froissy a le numéro de client 1377, la table se présente ensuite ainsi :

Numéro de client Nom Ville
1427 Berron Paris
1212 Sulis Strasbourg
1431 Verdon Toulouse
1118 Paré Compiègne

Vous auriez aussi pu choisir comme condition sous WHERE le nom « Froissy » pour obtenir le même résultat.

La suppression de plusieurs clients fonctionne selon un principe similaire. Dans notre exemple, nous pourrions supprimer toutes les entrées avec la ville de Strasbourg. Voici le code approprié :

DELETE FROM Liste de clients
WHERE Ville = 'Strasbourg';
sql

Comme deux entrées ont cette valeur, la table se présente alors comme suit :

Numéro de client Nom Ville
1427 Berron Paris
1431 Verdon Toulouse
1118 Paré Compiègne

Supprimer toutes les entrées d’une table

Si vous omettez la clause WHERE lors de l’exécution de SQL DELETE, toutes les entrées de la table seront supprimées, mais la table elle-même ne sera pas supprimée. Elle est toutefois vide après l’exécution de la commande. Pour notre exemple, voici le code nécessaire pour supprimer toutes les entrées :

DELETE FROM Liste de clients;
sql

Il faut donc être prudent avec cette commande.

Supprimer la table complète avec DROP TABLE

Pour supprimer une table entière, il vous faudra utiliser l’instruction DROP TABLE, dont la syntaxe est la suivante :

DROP TABLE Nom_de_la_table;
sql

Pour notre exemple, voilà le code à entrer :

DROP TABLE Liste de clients;
sql

Commandes similaires à SQL DELETE

Une alternative à SQL DELETE pour supprimer toutes les entrées d’une table est la commande TRUNCATE TABLE. Cependant, elle ne peut être utilisée que pour supprimer toutes les entrées d’une table, en une seule fois. Elle ne supporte pas la condition WHERE. Pour créer une nouvelle table, utilisez SQL CREATE TABLE. Pour éviter d’effacer accidentellement des données de manière irréversible, il est recommandé d’effectuer régulièrement des sauvegardes. Pour cela, utilisez SQL BACKUP DATABASE.

Conseil

Profitez de performances de pointe ! Avec le serveur d’hébergement SQL de IONOS, vous avez le choix entre MSSQL, MySQL et MariaDB. Une assistance personnalisée, des vitesses élevées et une architecture de sécurité de premier ordre sont garanties dans tous les cas.

Cet article vous a-t-il été utile ?
Page top