手机版

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

时间:2021-08-04 来源:互联网 编辑:宝哥软件园 浏览:

类型:数据库类大小:42.1M语言:中文评分:4.2标签:立即下载。当不需要表中的数据时,应删除数据并释放占用的空间。delete语句或Truncate语句可用于删除表中的数据,下面分别进行说明。

1.删除语句

(1)有条件删除

语法格式:delete[from]table _ name[where condition];

例如,删除用户表中用户标识为“001”的数据:从用户标识为“001”的用户中删除;

(2)无条件删除整个表数据

语法格式:delete table _ name

例如,删除用户表中的所有数据:删除用户;

第二,截断语句

使用Truncate语句就是删除表中的所有记录。

语法格式:截断[table]table _ name;

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

截断[table]table _ name[drop storage];

例如,删除users表中的所有数据并不会节省占用的空间;截断表用户删除存储;默认情况下使用Drop storage关键字,因此可以省略drop storage。

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

截断[table]table _ name[重用存储];

比如删除users表中的所有数据,节省占用的空间;截断表用户重用存储;

三、两种删除语句的比较

当delete语句删除记录时,记录会被逐个删除,但是当Truncate语句删除数据时,不会生成回滚信息。因此,如果需要删除大量数据,使用delete会占用更多的系统资源,而使用Truncate会快得多。

下面是一个例子来说明:

1、首先建立用户表:

创建表用户(userid varchar2(20)、username varchar2(30)、user pass varchar 2(30));

复制代码

2.然后插入一条数据

插入用户值(' 001 ',' GavinDream ',' 123456 ');

3.使用拷贝插入方法插入数万条数据

插入用户(用户标识、用户名、用户密码)从用户中选择*;

我插入了4,194,304条数据,用delete删除用了90.964秒,然后插入了两倍的数据,但是用truncate只用了2.215秒,如下图所示:

版权声明:oracle数据库删除数据的Delete语句和Truncate语句的比较是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。