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.

Previous
Récupèration de données dans une table