mathématiques appliquées (ECG 2e année) · Chapitre 13 · Application directe du cours
Supprimer, avec et sans condition
Bases de données et travaux pratiques · Modifier une table · niveau 1 (application)
Énoncé
La table produit a pour champs id, libelle et prix. Écrire la requête supprimant les produits dont le prix dépasse . Que ferait la même requête privée de sa condition ?
Corrigé
La requête.
DELETE FROM produit
WHERE prix > 1000;
Sa portée. Seules les lignes vérifiant la condition disparaissent. Si aucun produit ne coûte plus de , la requête ne supprime rien — et ce n'est pas une erreur.
Sans la condition.
DELETE FROM produit;
Cette requête vide la table entière. Toutes les lignes sont supprimées, sans confirmation, sans avertissement, et sans retour en arrière. La table continue d'exister — son schéma est intact —, mais elle ne contient plus rien.
Pourquoi c'est dangereux. Ce n'est pas une faute de syntaxe : la requête est parfaitement valide, et la base l'exécute sans broncher. C'est ce qui rend l'oubli de la clause WHERE si redoutable — rien ne le signale.
Le réflexe. Avant tout DELETE, on exécute le SELECT correspondant pour voir exactement ce que la condition atteint :
SELECT id, libelle, prix FROM produit
WHERE prix > 1000;
Si cette lecture rend les lignes attendues, alors et seulement alors on remplace SELECT ... par DELETE.
Exercices semblables
- Tout lire corrigé
- Lire avec une condition corrigé
- Ajouter une ligne corrigé
- Modifier une valeur corrigé
- Recoller deux tables corrigé