當表中的數據不需要時
則應該刪除該數據並釋放所占用的空間
刪除表中的數據可以使用Delete語句或者Truncate語句
下面分別介紹
一delete語句
(
)有條件刪除
語法格式
delete [from] table_name [where condition];
如
刪除users表中的userid為
的數據
delete from users where userid=
;
(
)無條件刪除整個表數據
語法格式
delete table_name;
如
刪除user表中的所有數據
delete users ;
二Truncate語句 使用Truncate語句是刪除表中的所有記錄
語法格式
Truncate [table] table_name;
(
)刪除所有記錄不保留記錄占用空間
Truncate [table] table_name [drop storage];
如
刪除users表中的所有數據並不保存占用空間
Truncate table users drop storage; 由於默認使用drop storage關鍵字
所以可以省略 drop storage;
(
)刪除所有記錄保留記錄占用空間
Truncate [table] table_name [reuse storage];
如
刪除users表中的所有數據並保存占用空間
Truncate table users reuse storage;
三兩種刪除語句的對比 由於delete語句刪除記錄時候
記錄是逐條刪除的
而Truncate 語句刪除數據時不產生回退信息
所以如果需要刪除大量數據的時候使用delete則占用較多的系統資源
而如果使用Truncate 則會快的多
下面通過實例說明一下
首先建立user表
create table users
(
userid varchar
(
)
username varchar
(
)
userpass varchar
(
)
);復制代碼
接著插入一條數據
insert into users values(
GavinDream
);
使用復制插入方法插入幾萬條數據
insert into users(userid
username
userpass) select * from users;我插入了
條數據
使用delete刪除花費時間為
seconds
然後又插入了二倍的數據
但使用truncate花費時間僅僅為
seconds
如下圖所示
From:http://tw.wingwit.com/Article/program/Oracle/201405/30860.html