I have been asked a question from an application developer that how can we differentiate between DELETE and TRUNCATE and I explained him as below.
TRUNCATE is a DDL command whereas DELETE is a DML command.
TRUNCATE is much faster than DELETE.
When you type DELETE all the data get copied into the Rollback tablespace first then delete operation get performed that’s why when you type ROLLBACK after deleting a table ,you can get back the data(The system get it for you from the Rollback tablespace).All this process take time. But when you type TRUNCATE, it removes data directly without copying it into the Rollback tablespace that’s why TRUNCATE is faster. Once you truncate you can't get back the data.
You can't rollback in TRUNCATE but in DELETE you can rollback. TRUNCATE removes the record permanently.
In case of TRUNCATE, Trigger doesn't get fired. But in DML commands like DELETE trigger get fired.
You can’t use conditions (WHERE clause) in TRUNCATE. But in DELETE you can write conditions using WHERE clause