QL truncate table命令用於刪除現有表中完整的數據。
您還可以使用DROP TABLE命令刪除完整的表,但它會從數據庫中刪除完整的表結構並如果你願意,你可再次存儲一些數據重新寫入到該表。
語法
truncate table的基本語法如下:
TRUNCATE TABLE table_name;
1.DELETE
・DML語言
・可以回退
・可以有條件的刪除
DELETE FROM 表名
WHERE 條件
2.TRUNCATE TABLE
・DDL語言
・無法回退
・默認所有的表內容都刪除
・刪除速度比delete快。
TRUNCATE TABLE 表名
1、TRUNCATE在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令Delete將被撤銷,而TRUNCATE則不會被撤銷。
2、TRUNCATE是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。
3、TRUNCATE將重新設置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過TRUNCATE操作后的表比Delete操作后的表要快得多。
4、TRUNCATE不能觸發任何Delete觸發器。
5、當表被清空后表和表的索引講重新設置成初始大小,而delete則不能。
6、不能清空父表。
在oracle里,使用delete刪除數據以后,數據庫的存儲容量不會減少,而且使用delete刪除某個表的數據以后,查詢這張表的速度和刪除之前一樣,不會發生變化。
因為oralce有一個HWM高水位,它是oracle的一個表使用空間最高水位線。當插入了數據以后,高水位線就會上漲,但是如果你采用delete語句刪除數據的話,數據雖然被刪除了,但是高水位線卻沒有降低,還是你剛才刪除數據以前那么高的水位。除非使用truncate刪除數據。那么,這條高水位線在日常的增刪操作中只會上漲,不會下跌,所以數據庫容量也只會上升,不會下降。而使用select語句查詢數據時,數據庫會掃描高水位線以下的數據塊,因為高水位線沒有變化,所以掃描的時間不會減少,所以才會出現使用delete刪除數據以后,查詢的速度還是和delete以前一樣。
DELECT不需要列名或通配符。DELECT刪除整行而不是刪除列。要刪除指定列,請使用UPDATE語句。