MySQL + SQL · Lesson 36
DROP, TRUNCATE and DELETE Difference
Three Ways to Remove Data
These three look similar but behave very differently — a favourite exam question.
The Difference
| Point | DELETE | TRUNCATE | DROP |
|---|---|---|---|
| Removes | chosen rows | all rows | whole table |
| WHERE allowed? | Yes | No | No |
| Structure kept? | Yes | Yes | No |
| Type | DML | DDL | DDL |
| Rollback? | Possible | No | No |
Examples
DELETE FROM students WHERE marks < 33; -- some rows
TRUNCATE TABLE students; -- all rows, keep table
DROP TABLE students; -- table gone
Summary
- DELETE = selected rows (with WHERE), can rollback.
- TRUNCATE = all rows, keeps structure, faster.
- DROP = removes the table entirely.