MySQL
Suppression de données dans une table
Voici le chapitre Suppression de données dans une table — comment supprimer proprement, avec WHERE et toutes les précautions utiles.
🧨 Suppression de données dans une table
(DELETE — WHERE, conditions multiples, IN, LIKE, JOIN, LIMIT, sécurité)
La commande principale :
DELETE FROM NomTable
WHERE condition;
Sans WHERE, tu supprimes tout. Donc toujours vérifier.
⸻
🟩 1. Suppression ciblée par ID
DELETE FROM User
WHERE UserID = 12;
La forme la plus sûre.
🟦 2. Suppression par condition simple
DELETE FROM User
WHERE Actif = 0;
🟧 3. Suppression avec plusieurs conditions (AND / OR)
DELETE FROM User
WHERE Actif = 0
AND Grade = 'invite';
DELETE FROM User
WHERE Ville = 'Paris'
OR Ville = 'Lyon';
🟥 4. Suppression par mots-clés (LIKE)
DELETE FROM Video
WHERE Titre LIKE '%test%';
🟪 5. Suppression sur plusieurs éléments (IN)
DELETE FROM User
WHERE UserID IN (3, 7, 12, 24);
🟫 6. Suppression dans un intervalle (BETWEEN)
DELETE FROM LogConnexion
WHERE CreateDate BETWEEN '2025-01-01' AND '2025-01-31';
🟨 7. Suppression avec JOIN
Supprimer toutes les vidéos d’un utilisateur inactif :
DELETE v
FROM Video v
JOIN User u ON v.UserID = u.UserID
WHERE u.Actif = 0;
🟧 8. Limiter l’impact (LIMIT)
Utile pour supprimer par petits lots :
DELETE FROM Historique
WHERE Action = 'debug'
LIMIT 100;
🟪 9. Supprimer tout le contenu d’une table (sans structure)
Si tu veux vider une table rapidement :
TRUNCATE TABLE LogConnexion;
Plus rapide qu’un DELETE massif, mais irréversible.
🧲 10. Toujours tester avec un SELECT avant
Avant une suppression, fais exactement le même WHERE en SELECT :
SELECT *
FROM User
WHERE Actif = 0
AND Grade = 'invite';
Si le résultat est correct, tu peux passer au DELETE.
🧨 11. Erreurs fréquentes (à éviter)
Oublier le WHERE
→ supprime toutes les lignes.
Condition trop large
WHERE Email LIKE '%@gmail%'
Ça peut supprimer bien plus que prévu.
Suppression d’une ligne référencée
Tu peux voir :
Cannot delete or update a parent row...
Dans ce cas, vérifie les clés étrangères et les règles ON DELETE.
🎯 Conclusion
Avec ça tu maîtrises :
- suppression ciblée et filtrée
- formats WHERE (LIKE, IN, BETWEEN)
- suppression avec JOIN
- sécurisation par SELECT et LIMIT
La suppression est simple, mais c’est la requête la plus dangereuse si tu vas trop vite.