Retour au cours

Suppression de Données (DELETE vs. TRUNCATE)

Principes Fondamentaux des Bases de Données : De Zéro à Héros

Leçon 22 : Suppression de Données (DELETE vs. TRUNCATE)

Nous couvrons deux façons principales de supprimer des données des tables, à la fois DML (DELETE) et DDL (TRUNCATE).

1. Instruction DELETE (DML)

DELETE supprime des lignes d'une table en fonction d'une condition WHERE. Comme UPDATE, omettre WHERE supprime toutes les lignes, mais c'est plus lent que TRUNCATE car il journalise chaque suppression (permet l'annulation—rollback).

Syntaxe

sql DELETE FROM [nom_de_la_table] WHERE [condition];

Exemple : Suppression de Comptes Inactifs

Supprimer tous les clients qui n'ont pas passé de commande depuis 2020.

sql DELETE FROM Customers WHERE LastOrderDate < '2020-01-01';

2. TRUNCATE TABLE (DDL)

TRUNCATE TABLE supprime toutes les lignes d'une table rapidement et réinitialise les compteurs d'auto-incrémentation. C'est beaucoup plus rapide que DELETE car il traite les données par blocs plus grands, mais il ne peut généralement pas être annulé (rolled back).

  • TRUNCATE est une commande DDL car elle modifie l'état de la structure de la table (le compteur est réinitialisé).

Syntaxe

sql TRUNCATE TABLE [nom_de_la_table];

Différences Clés

CaractéristiqueDELETETRUNCATE
VitessePlus lent (journalise ligne par ligne)Beaucoup plus Rapide (désalloue le stockage)
Clause WHEREOui, permet le filtrageNon, supprime tout
Annulation (Rollback)Oui (généralement)Non (généralement, dépend du SGBD)
Réinitialisation du Compteur PKNonOui
TypeDMLDDL

Avertissement : Utilisez TRUNCATE avec une extrême prudence, car les données sont généralement parties définitivement.