Sommaire

La suppression de données

La suppression n’est pas l’ordre le plus utilisé mais il est important de connaître la syntaxe. Il faut faire très attention lors de l’utilisation du DELETE car il arrive souvent que l’on supprime plus de lignes que prévu.

Pour éviter cela, deux conseils : tester au préalable avec un SELECT la clause WHERE afin de vérifier le nombre de lignes concernées, et utiliser à bon escient les ordres COMMIT et ROLLBACK que nous détaillerons dans le chapitre Le contrôle de transactions (TCL).

1. L’ordre DELETE

L’ordre DELETE va permettre de supprimer une ou plusieurs lignes dans une table.

La syntaxe de la clause DELETE est simple si l’on ne restreint pas les lignes. Si l’on ne précise pas de clause WHERE, toutes les lignes de la table sont supprimées.

Si ce sont des tables importantes, il est déconseillé d’utiliser un DELETE sans restriction, il existe un risque important de faire planter le système qui ne pourra pas stocker toutes les lignes détruites afin de pouvoir les restituer si un ROLLBACK est demandé (voir chapitre Approfondissement).

Une requête DELETE peut ne pas aboutir si une contrainte d’intégrité n’est plus vérifiée à cause de la suppression d’une ligne.

Exemple de suppression de toutes les lignes d’une table

DELETE FROM Chambres;

Maintenant, pour ne supprimer que certaines lignes, il faut ajouter ...