What are the differences between TRUNCATE, DELETE, and DROP?

Answer

DELETE removes specific rows filtered by a WHERE clause. It is DML, logs each row deletion (can be slow for large tables), can be rolled back in a transaction, and fires triggers. TRUNCATE removes all rows from a table by deallocating data pages — much faster than DELETE for clearing a table, minimally logged, cannot use a WHERE clause, resets identity/auto-increment counters, and in most databases cannot be rolled back. DROP removes the entire table structure (schema + data + indexes + constraints) permanently. DROP is DDL, cannot be rolled back in most RDBMS. Use: DELETE for selective removal, TRUNCATE for bulk clear, DROP for removing the table entirely.