oracle數據庫刪除數據的兩種方式

當表中的數據不須要是,則應該刪除該數據,並釋放所佔用的空間; 刪除表中的數據有delete和truncate兩種方式,下面分別介紹;

1、delete語句ide

(1)有條件刪除spa

   語法格式:delete [from]  table_name  [where condition];日誌

如:刪除users表中的userid爲‘001’的數據:delete from users where userid='001';orm

(2)無條件刪除整個表數據事務

     語法格式:delete  table_name;資源

如:刪除user表中的全部數據:delete users ;it

    
2、truncate語句   io

    使用truncate是表示刪除表中全部的數據;table

   

語法格式: Truncate [table]  table_name;class

(1)刪除全部記錄不保留記錄佔用空間

     Truncate [table]  table_name  [drop storage];

    如:刪除users表中的全部數據並不保存佔用空間: Truncate table users drop storage; 因爲默認使用drop storage關鍵字,因此能夠省略 drop storage;

(2)刪除全部記錄保留記錄佔用空間

     Truncate [table]  table_name  [reuse storage];

     如:刪除users表中的全部數據並保存佔用空間: Truncate table users reuse storage;

    

3、兩種刪除語句的對比

      因爲delete語句刪除記錄時候,記錄是逐條刪除的,而Truncate 語句刪除數據時不產生回退信息;因此若是須要刪除大量數據的時候使用delete則佔用較多的系統資源,而若是使用Truncate 則會快的多。

            TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:兩者均刪除表中的所有行。

            但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日誌資源少。

             DELETE 語句每次刪除一行,並在事務日誌中爲所刪除的每行記錄一項。
            TRUNCATE TABLE 經過釋放存儲表數據所用的數據頁來刪除數據,而且只在事務日誌中記錄頁的釋放。

 
TRUNCATE,DELETE,DROP放在一塊兒比較:
            TRUNCATE TABLE:刪除內容、釋放空間但不刪除定義。
            DELETE TABLE:刪除內容不刪除定義,不釋放空間。
            DROP TABLE:刪除內容和定義,釋放空間。            

相關文章
相關標籤/搜索