DELETE removes rows (data) from a table, but the table structure remains.
- You can delete specific rows using
WHERE
. - If you don’t use
WHERE
, it will remove all rows. - You can ROLLBACK (undo) if you are using transactions.
Example:
sql
DELETE FROM students WHERE name = 'Ramesh';
- Removes only Ramesh.
- Table still exists with other rows.
TRUNCATE removes all rows from a table in one go.
- You cannot use WHERE (removes everything).
- Faster than DELETE (because it doesn’t log each row).
- You cannot ROLLBACK in most databases (once gone, gone!).
- Table structure remains.
Example:
sql
TRUNCATE TABLE students;
Removes all students, but the students
table is still there (empty).
DROP deletes the entire table (structure + data).
- Table is gone completely.
- You cannot insert into it again unless you recreate the table.
Example:
sql
DROP TABLE students;
Removes the table itself. Now students
doesn’t exist anymore.
Quick Comparison Table
Command | Deletes Data? | Deletes Table Structure? | Can Use WHERE? | Rollback Possible? |
---|---|---|---|---|
DELETE | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes (with transaction) |
TRUNCATE | ✅ Yes (all rows) | ❌ No | ❌ No | ❌ No (mostly) |
DROP | ✅ Yes | ✅ Yes | ❌ No | ❌ No |
Real-Life Analogy
- DELETE → “Remove some students from the class register, but the register book remains.”
- TRUNCATE → “Erase the entire register book, but keep the book for new entries.”
- DROP → “Burn the register book completely. No book exists.”
Super Simple Memory Trick
- DELETE = Remove rows (one by one or all)
- TRUNCATE = Remove all rows (fast clean sweep)
- DROP = Remove table itself (bye-bye table)