Il arrive qu’on doive supprimer des données d’une base : un ancien élève, un produit retiré du stock, ou une réservation annulée. C’est à cela que sert la commande SQL DELETE. Elle permet de retirer des enregistrements existants dans une table.
À la fin de ce cours, tu seras capable de :
DELETEWHERE pour cibler précisément les lignes à effacerDELETE💣 Attention : une suppression est définitive. Une fois les lignes effacées, elles ne peuvent plus être récupérées, sauf si tu as une sauvegarde.
Dans ce cours, tu vas apprendre à utiliser DELETE de manière précise et sécurisée.
DELETE FROM nom_table
WHERE condition;
Voici une table Eleves :
CREATE TABLE Eleves (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(50),
age INT,
classe VARCHAR(10)
);
Tu veux supprimer l’élève qui a l’ID 4 :
DELETE FROM Eleves
WHERE id = 4;
✅ Seule la ligne où id = 4 sera supprimée.
Tu peux aussi supprimer plusieurs enregistrements avec une condition plus large :
DELETE FROM Eleves
WHERE classe = '6A';
Ici, tous les élèves de la classe 6A seront supprimés.
WHERE, tout est suppriméDELETE FROM Eleves;
Cette commande supprime toutes les lignes de la table Eleves.
❌ C’est souvent une erreur. À ne jamais faire par accident. Toujours vérifier si WHERE est bien présent.
WHERELa clause WHERE est indispensable pour contrôler quelles lignes seront supprimées.
Tu peux cibler une seule ligne (id = 3), ou plusieurs (classe = '5B'). Tu peux aussi utiliser des conditions plus complexes :
age > 17nom LIKE 'A%'id IN (1, 2, 3)Cela te permet de supprimer exactement ce que tu veux, ni plus, ni moins. C’est une protection essentielle : sans WHERE, tu perds tout.
DELETE permet de supprimer une ou plusieurs lignes d'une table.WHERE pour cibler les données à effacer.WHERE, toutes les lignes de la table seront irrémédiablement perdues.AND, OR, IN, etc.SELECT avec ta condition avant d'exécuter le DELETE, pour vérifier ce que tu vas supprimer.WHERE avec un SELECT avant de supprimerDELETE sans WHERE, sauf si tu veux vraiment tout viderVoici la table Livres :
CREATE TABLE Livres (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(100),
auteur VARCHAR(50),
annee INT
);
DELETE sans WHERE : que se passe-t-il ? Pourquoi faut-il l’éviter ?