# 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](https://www.ionos.fr/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/) (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 !

## Syntaxe et fonctionnement

Dans la syntaxe de SQL `DELETE`, la spécification est implicite grâce à l’ajout de `WHERE`. La [commande SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) se forme donc toujours de cette manière :

```sql
DELETE FROM Nom_de_la_table
WHERE Condition;
```

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 :

<table>
  <thead>
    <tr>
      <th>Numéro de client</th>
      <th>Nom</th>
      <th>Ville</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Berron</td>
      <td>Paris</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Froissy</td>
      <td>Strasbourg</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Sulis</td>
      <td>Strasbourg</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Verdon</td>
      <td>Toulouse</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Paré</td>
      <td>Compiègne</td>
    </tr>
  </tbody>
</table>

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

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

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

<table>
  <thead>
    <tr>
      <th>Numéro de client</th>
      <th>Nom</th>
      <th>Ville</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Berron</td>
      <td>Paris</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Sulis</td>
      <td>Strasbourg</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Verdon</td>
      <td>Toulouse</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Paré</td>
      <td>Compiègne</td>
    </tr>
  </tbody>
</table>

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é :

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

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

<table>
  <thead>
    <tr>
      <th>Numéro de client</th>
      <th>Nom</th>
      <th>Ville</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Berron</td>
      <td>Paris</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Verdon</td>
      <td>Toulouse</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Paré</td>
      <td>Compiègne</td>
    </tr>
  </tbody>
</table>

## 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 :

```sql
DELETE FROM Liste de clients;
```

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 :

```sql
DROP TABLE Nom_de_la_table;
```

Pour notre exemple, voilà le code à entrer :

```sql
DROP TABLE Liste de clients;
```

## 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`](https://www.ionos.fr/digitalguide/serveur/configuration/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](https://www.ionos.fr/digitalguide/serveur/securite/quest-ce-quune-sauvegarde/). Pour cela, utilisez [SQL `BACKUP DATABASE`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-backup-database/).

Conseil Profitez de performances de pointe ! Avec le [serveur d’hébergement SQL](https://www.ionos.fr/cloud/hebergement-serveur-sql "Hébergement SQL pour les bases de données MSSQL, MySQL et MariaDB | IONOS") 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.


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/configuration/sql-delete/](https://www.ionos.fr/digitalguide/serveur/configuration/sql-delete/) for AI/LLM consumption.