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

当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍。

一、delete语句

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

   

转载于:https://www.cnblogs.com/lcword/p/5463547.html

oracle数据库删除数据Delete语句和Truncate语句的对比相关推荐

  1. oracle 删除原有的数据,oracle数据库删除数据的两种方式

    当表中的数据不需要是,则应该删除该数据,并释放所占用的空间; 删除表中的数据有delete和truncate两种方式,下面分别介绍: 一.delete语句 (1)有条件删除 语法格式:delete [ ...

  2. Oracle数据库Timestamp数据差值计算Sql语句

    今天的工作中遇到一个问题,需要计算数据库中两个时间字段的差值,字段类型是timestamp,将字段直接相减,会得到timestamp类型的结果值,不是我想要的number类型的值.在网上找了一些方法, ...

  3. sql truncate_如何在SQL Delete和SQL Truncate语句后使用数据库备份恢复数据

    sql truncate This article explores the recovery of data removed by SQL Delete and SQL Truncate state ...

  4. Oracle数据库重复数据删除的三种情况

    在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来很多的不便,那么怎么删除这些重复没有用的数据呢? 重复数据删除技术可以提供更大的备份容量,实现更长 ...

  5. mysql根据id删除数据sql语句_删除数据sql-sql数据库删除数据-sql中实现数据删除的语句是...

    怎样用sql语言删除一行数据 在SQL数据库中删除记录一般使用Delete语句,下面就将为您介绍SQL中用于删除记录的DELETE语句的语法 DELETE FROM 表名称 WHERE 列名称 = 值 ...

  6. mysql从删库到坐牢_SQL实战新手入门:删除数据-DELETE语句(2)

    SQL实战新手入门:删除数据-DELETE语句(2)以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 删除数据 DELET ...

  7. Oracle数据库删除重复记录的方法

    Oracle数据库删除重复记录的方法,做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的.这个表的数据是千万级的,而且是生产系统.也就是说 ...

  8. mysql数据库删除数据的三种方式:

    mysql数据库删除数据的三种方式: delete from table where 直接删除表中的某一行数据,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作.所以delete相 ...

  9. Oracle数据库删除表的几种方法

    删除表(记录和结构)的语名:delete -- truncate -- drop delete (删除数据表里记录的语句) delete from 表名 where 条件;     注意:删除记录并不 ...

最新文章

  1. python模拟密码有效性检测功能_用Python程序检查密码的有效性?
  2. IOS项目之分层MVVM
  3. Leaflet实现地图分屏联动
  4. 基于事件驱动架构构建微服务第14部分:查询API
  5. 今日头条关键词排名怎么搜索_公众号搜索关键词排名、公众号怎么排名靠前
  6. 【编程导航】这本小书,把常考算法题讲活了!
  7. 某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!
  8. hadoop hdfs 单机配置
  9. OpenCV学习(13) 细化算法(1)(转)
  10. python读取配置文件使用_如何使用Python3读取配置文件
  11. 创建第一个Djiago
  12. 2021-3测试通过:eclipse安装svn插件
  13. mysql varbinary blob_MySQL BIT、BINARY、VARBINARY、BLOB(二进制类型)
  14. 易语言mysql 记录集_求一个易语言返回mysqlcha询结果记录集的例子
  15. 必须使用javadoc形式的注释
  16. 微信小程序获取openid(用户唯一身份识别)
  17. 健身房有哪些令人讨厌的行为?
  18. React-单页面(SPA)多路由(代替多页面)
  19. python已打开页面获取信息_python+selenium实现自动登录网页获取信息(一)
  20. 电机标幺化、PI标幺化、锁相环PLL标幺化 详解电机模型相关标幺化处理 电流环PI控制器的标幺化处理

热门文章

  1. php access ole相片,[求助]怎样读取ACCESS数据库中的OLE对象的图片啊???
  2. python中f点flush是什么函数_Python文件操作及内置函数flush原理解析
  3. 集群镜像:实现高效的分布式应用交付
  4. Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外
  5. 从零开始入门 K8s | Kubernetes 存储架构及插件使用
  6. Kubernetes 入门必备云原生发展简史
  7. vs2008创建mysql数据库_求教VS2008 C++连接MySQL数据库
  8. ie浏览器怎么打开html,Win10系统IE浏览器不能打开HTML怎么办
  9. php编程用空格,shell 编程中空格的使用方法
  10. java表示新年快乐,2017新年快乐:三种和新年相关的地道表达