DELETE : retirer une ou plusieurs lignes
DELETE supprime des lignes (enregistrements) dans une table.
Attention : une fois supprimées, ces lignes ne sont plus là (sauf si vous avez une sauvegarde ou une transaction).
Une ligne = une fiche papier. UPDATE = “corriger la fiche”.
DELETE = “jeter la fiche”.
Un DELETE sans WHERE supprime toutes les lignes de la table.
Quand on débute, on adopte la même méthode que pour UPDATE :
SELECT d’abord, DELETE ensuite.
La structure de base
La syntaxe la plus classique :
DELETE FROM nom_table
WHERE condition;
🧱
DELETE FROM
Obligatoire
La table dans laquelle vous supprimez des lignes.
🎯
WHERE
Crucial
Quelles lignes supprimer (filtre).
✅
Méthode “SAFE”
Écrire d’abord un SELECT avec le même WHERE pour vérifier la cible.
🧠
À retenir
DELETE supprime des lignes. Il ne supprime pas une colonne, et ne supprime pas la table.
Supprimer une seule ligne (le cas le plus courant)
Exemple : vous avez un film de test avec id = 99, vous voulez le retirer.
SELECT id, titre, annee
FROM films
WHERE id = 99;
DELETE FROM films
WHERE id = 99;
Comme pour UPDATE, la clé primaire (souvent id) permet de cibler une ligne unique.
C’est la manière la plus sûre de supprimer “une seule” ligne.
Supprimer plusieurs lignes (quand c’est voulu)
Parfois on veut supprimer un groupe de lignes : par exemple des données de test, des doublons, ou une catégorie entière.
Exemple pédagogique : supprimer les films notés < 3.
SELECT id, titre, note
FROM films
WHERE note < 3;
DELETE FROM films
WHERE note < 3;
Une suppression groupée peut retirer beaucoup de données.
Avant de valider, vérifiez combien de lignes sont concernées avec le SELECT.
Guide pas à pas : supprimer sans risque (méthode SAFE)
1
Écrire le SELECT de contrôle
Vous écrivez la requête qui montre exactement ce que vous allez supprimer :
SELECT *
FROM films
WHERE id = 99;
Si le résultat est correct, vous pouvez passer à DELETE.
2
Écrire le DELETE correspondant
DELETE FROM films
WHERE id = 99;
Relisez lentement : table → WHERE → valeur.
3
Re-vérifier le résultat
Rejouez le SELECT : s’il ne renvoie plus rien, la suppression a réussi.
SELECT *
FROM films
WHERE id = 99;
Exactement comme UPDATE. Cette méthode évite 90% des catastrophes en SQL.
Exercice pratique : nettoyage de données
Objectif : pratiquer DELETE comme dans un vrai projet (tests, nettoyage, suppression ciblée).
Utilisez films ou livres.
1) Supprimer une ligne précise
Ajoutez une ligne de test puis supprimez-la avec son id.
DELETE FROM films
WHERE id = 99;
2) Supprimer des données de test
Supprimez tous les films dont le titre commence par “TEST”.
DELETE FROM films
WHERE titre LIKE 'TEST%';
3) Supprimer selon une condition
Supprimez les films notés < 3 (exemple pédagogique).
DELETE FROM films
WHERE note < 3;
Bonus : prudence
Écrivez le SELECT de contrôle correspondant à chacun des DELETE ci-dessus.
Être capable de prévoir exactement ce que vous allez supprimer.
Après chaque DELETE, rejouez le SELECT de contrôle.
Si le résultat est vide, c’est que la suppression a bien eu lieu.
Récapitulatif du chapitre
- Supprimer des lignes avec DELETE FROM
- Cibler précisément avec WHERE (indispensable)
- Supprimer en groupe (avec prudence et un SELECT de contrôle)
- Ne pas confondre DELETE et DROP TABLE
- Appliquer la méthode SAFE : SELECT → DELETE → SELECT
Prochain chapitre : vous allez comprendre pourquoi une colonne id est si importante
avec les clés primaires.