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 sup­pri­mé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 en­re­gis­tre­ment. Si vous souhaitez supprimer une telle entrée, le Struc­tu­red Query Language (SQL) met à votre dis­po­si­tion l’ins­truc­tion SQL DELETE. Avec cette ins­truc­tion, vous demandez au système de supprimer une ou plusieurs entrées. Pour s’assurer que seules les données sou­hai­tées sont retirées de la table, l’uti­li­sa­tion de la commande WHERE est très im­por­tante. Si vous ne l’utilisez pas, toutes les entrées seront sup­pri­mées du tableau. La plus grande prudence est donc de mise !

Serveurs virtuels (VPS)
VPS éco­no­miques sur serveurs Dell En­ter­prise
  • 1 Gbit/s de bande passante et trafic illimité
  • Dis­po­ni­bi­lité de 99,99 % et cer­ti­fi­ca­tion ISO
  • As­sis­tance 24/7 primée pour sa qualité et con­seil­ler personnel

Syntaxe et fonc­tion­ne­ment

Dans la syntaxe de SQL DELETE, la spé­ci­fi­ca­tion 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 pro­pre­ment dite et spécifiez dans quelle table la sup­pres­sion doit être effectuée. La deuxième ligne est op­tion­nelle. Vous indiquez ici la condition qu’une ligne doit remplir pour être prise en compte pour la sup­pres­sion. 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 fonc­tion­ne­ment de SQL DELETE est de prendre un exemple. Pour cela, nous créons une table fictive appelée « Liste de clients ». Celle-ci contient dif­fé­rentes entrées relatives aux clients d’une en­tre­prise et comprend un numéro de client, le nom et l’em­pla­ce­ment. Voici à quoi ressemble ce tableau :

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

Si vous souhaitez main­te­nant supprimer le client Froissy de votre liste, appliquez l’ins­truc­tion 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 Stras­bourg
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 sup­pres­sion de plusieurs clients fonc­tionne selon un principe similaire. Dans notre exemple, nous pourrions supprimer toutes les entrées avec la ville de Stras­bourg. 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 sup­pri­mé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é­ces­saire 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’ins­truc­tion 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 si­mi­laires à SQL DELETE

Une al­ter­na­tive à 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 ac­ci­den­tel­le­ment des données de manière ir­ré­ver­sible, il est re­com­mandé d’effectuer ré­gu­liè­re­ment des sau­ve­gardes. Pour cela, utilisez SQL BACKUP DATABASE.

Conseil

Profitez de per­for­mances de pointe ! Avec le serveur d’hé­ber­ge­ment SQL de IONOS, vous avez le choix entre MSSQL, MySQL et MariaDB. Une as­sis­tance per­son­na­li­sée, des vitesses élevées et une ar­chi­tec­ture de sécurité de premier ordre sont garanties dans tous les cas.

Aller au menu principal