Oracle的drop、delete、truncate区别

 drop会删除整个表里的数据表结构。事务不可回滚。

?

1

drop table test;

truncate会删除表里的所有数据,不会逐行操作。且事务无法回滚。

?

1

truncate table test;

delete针对的是每行数据。事务可回滚。

?

1

delete from test where id=1;

truncate针对的是全表数据,不会做逐行操作,而delete针对的是每行数据。所以truncate的性能高于delete。

时间: 2024-09-23 00:13:49

Oracle的drop、delete、truncate区别的相关文章

MySQL和Oracle中的delete,truncate对比

在MySQL和Oracle中的delete,truncate还是存在着一些差别,明白了这些差别可能对于处理问题,理解问题会有一些帮助. 我们来简单通过一些测试来说明.我们创建两个表test_del,test_tru来对比delete,truncate的操作.我们有一个临时表t_fund_info大概有几百万的数据量. 创建test_del > create table test_del select *from t_fund_info; Query OK, 1998067 rows affect

实例理解SQL中truncate和delete的区别_MsSql

本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下 ---创建表Table1 IF OBJECT_ID('Table1','U') IS NOT NULL DROP TABLE Table1 GO CREATE TABLE Table1 (ID INT NOT NULL, FOID INT NOT NULL) GO --插入测试数据 INSERT INTO Table1 VALUES(1,101),(2,102),(3,103),(4,104)

drop,truncate与delete的区别_MsSql

注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,

详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始_Mysql

不同点:  1. truncate和 delete只删除数据不删除表的结构(定义)      drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的 存储过程/函数将保留,但是变为invalid状态.  2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger, 执行的时候将被触发.     truncate,drop是ddl, 操作立即生效,原数据不放到r

drop,truncate与delete的区别

注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,

drop与truncate table 的区别*

我们先把上一篇的文章讲完:http://blog.csdn.net/changyanmanman/article/details/7767378 是这样的:truncate先把原来的表重新命名一下,所以,就像我们之前测试的OBJECT_ID 是不会变化的.又重新创建了一个表,这个表的名字和被truncate的表的名字相同,但是他的段(也可以说地址)必定发生变化,所以又出现了新的data_object_id.这个表是没有内容的,只有这个表的定义. truncate不会产生大量的roolback,不

实例理解SQL中truncate和delete的区别

本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下 ---创建表Table1 IF OBJECT_ID('Table1','U') IS NOT NULL DROP TABLE Table1 GO CREATE TABLE Table1 (ID INT NOT NULL, FOID INT NOT NULL) GO --插入测试数据 INSERT INTO Table1 VALUES(1,101),(2,102),(3,103),(4,104)

SQL中drop,delete和truncate的异同

    相同点:       truncate 和不带 where 子句的 delete,以及 drop 都会删除表内的数据       不同点:       1. truncate 和 delete 只删除数据不删除表的结构(定义)             drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态.       2. delete 语句是数据库操作语言(dml)

Oracle User 和 Schema 的区别

 Oracle User 和 Schema 的区别 1 概述 Schema和User的定义如下 A schema is a collection of database objects (used by a user.). Schema objects are the logical structures that directly refer to the database's data. A user is a name defined in the database that can co

oracle的游标和过程区别

问题描述 oracle的游标和过程区别 我想要查询emp表中的所有的数据 用游标的方式会写 但是能不能用过程实现这个查询呢?还有过程是和函数一样 只能返回一个参数吗?不能返回行数据吗? 解决方案 存储过程当然可以返回行数据.http://www.cnblogs.com/attraction/archive/2008/01/23/13489.html