oracle数据库删除数据Delete语句和Truncate语句的使⽤
⽐较
当表中的数据不需要时,则应该删除该数据并释放所占⽤的空间,删除表中的数据可以使⽤Delete语句或者Truncate语句,下⾯分别介绍。
(1)有条件删除
语法格式:delete [from] table_name [where condition];
如:删除users表中的userid为‘001'的数据:delete from users where userid='001';
(2)⽆条件删除整个表数据
语法格式:delete table_name;
如:删除user表中的所有数据:delete users ;
truncate的数据如何恢复使⽤Truncate语句是删除表中的所有记录。
语法格式: Truncate [table] table_name;
(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;
由于delete语句删除记录时候,记录是逐条删除的,⽽Truncate 语句删除数据时不产⽣回退信息;所以如果需要删除⼤量数据的时候使⽤delete则占⽤较多的系统资源,⽽如果使⽤Truncate 则会快的多。
下⾯通过实例说明⼀下:
1、⾸先建⽴user表:
create table users
(
userid varchar2(20) ,
username varchar2(30),
userpass varchar2(30)
);复制代码
2、接着插⼊⼀条数据
insert into users values('001','GavinDream','123456'); 3、使⽤复制插⼊⽅法插⼊⼏万条数据
insert into users(userid,username,userpass) select * from users;我插⼊了 4194304条数据,使⽤delete删除花费时间为:90.964 seconds,然后⼜插⼊了⼆倍的数据,但使⽤truncate花费时间仅仅为2.215 seconds,如下图所⽰:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。