熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle數據庫刪除數據Delete語句和Truncate語句的使用比較

2022-06-13   來源: Oracle 
當表中的數據不需要時則應該刪除該數據並釋放所占用的空間刪除表中的數據可以使用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(useridusernameuserpass) select * from users;我插入了 條數據使用delete刪除花費時間為 seconds然後又插入了二倍的數據但使用truncate花費時間僅僅為 seconds如下圖所示




From:http://tw.wingwit.com/Article/program/Oracle/201405/30860.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.