Note: This is not to say delete the delete statement with a where clause the same point
truncate and with no where clause of the delete, and drop the data table will be deleted
1. Truncate and delete only delete data without deleting the table structure (as defined)
drop statement will remove the structure is dependent on the constraints (constrain), trigger (trigger), index (index); depends on the form of stored procedure / function will be retained, but becomes invalid state.
2.delete statement is dml, this operation will put rollback segement, the transaction is committed after the entry into force; if there is a corresponding trigger, when the execution will be triggered.
truncate, drop a ddl, operations effective immediately, the original data is not placed in the rollback segment can not be rolled back. operation does not trigger the trigger.
3.delete statement does not affect the table occupied by the extent, the high water line (high watermark) to maintain the original position does not move obviously drop table statement released by the space occupied by all
truncate statement released by default see the space to minextents a extent, unless reuse storage; truncate will reset the high water line (back to the beginning).
4 speed, in general: drop>; truncate>; delete
5 Safety: Be careful using drop and truncate, in particular when there is no backup, otherwise the use of too late to cry, want to delete some rows with delete, to bring attention to the where clause. Rollback segments large enough.
Want to delete the table, of course, with a drop
Want to retain all the data tables will be deleted if and unrelated, you can use truncate if and affairs, or want to trigger the trigger, or use the delete.
If the order form inside the debris, can truncate to keep up with reuse stroage, then re-import / insert data