数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

oracle数据库删除数据Delete语句和Truncate语句的使用比较


发布日期:2019年06月15日
 
oracle数据库删除数据Delete语句和Truncate语句的使用比较
当表中的数据不需要时则应该删除该数据并释放所占用的空间删除表中的数据可以使用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_name;

()删除所有记录不保留记录占用空间

Truncate

table_name [drop storage];

删除users表中的所有数据并不保存占用空间 Truncate table users drop storage; 由于默认使用drop storage关键字所以可以省略 drop storage;

()删除所有记录保留记录占用空间

Truncate

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如下图所示

               

上一篇:在OracleE数据库的字段上建立索引的方法

下一篇:oracle 分页问题解决方案