区别:
1、在功能上,truncate是清空一个表的内容,它相当于delete from table_name。
2、delete是dml操作,truncate是ddl操作;因此,用delete删除整个表的数据时,会产生大量的roolback,占用很多的rollback segments, 而truncate不会。
3、在内存中,用delete删除数据,表空间中其被删除数据的表占用的空间还在,便于以后的使用,另外它是“假相”的删除,相当于windows中用delete删除数据是把数据放到回收站中,还可以恢复,当然如果这个时候重新启动系统(OS或者RDBMS),它也就不能恢复了!
而用truncate清除数据,内存中表空间中其被删除数据的表占用的空间会被立即释放,相当于windows中用shift+delete删除数据,不能够恢复!
4、truncate 调整high water mark 而delete不;truncate之后,TABLE的HWM退回到 INITIAL和NEXT的位置(默认)delete 则不可以。
5、truncate 只能对TABLE,delete 可以是table,view,synonym。
6、TRUNCATE TABLE 的对象必须是本模式下的,或者有drop any table的权限 而 DELETE 则是对象必须是本模式下的,或被授予 DELETE ON SCHEMA.TABLE 或DELETE ANY TABLE的权限。
7、在外层中,truncate或者delete后,其占用的空间都将释放。
8、truncate和delete只删除数据,而drop则删除整个表(结构和数据)。
分享到:
相关推荐
在数据库管理中,TRUNCATE 和 DELETE 是两种用于删除数据的方法,它们各有其特定的适用场景和优缺点。本文将详细对比分析这两种操作的区别。 首先,TRUNCATE TABLE 是一种快速删除表中所有数据的方式,它并不记录每...
"SQL中truncate和delete的区别" SQL中truncate和delete是两种不同的数据删除方式,它们之间存在许多关键的区别。本文将详细阐述truncate和delete的不同之处,以便读者更好地理解和选择这两种删除方式。 -delete的...
与 `TRUNCATE` 不同,`DELETE` 操作会记录在事务日志中,因此可以被回滚,支持数据恢复。此外,`DELETE` 会触发表上的触发器和检查约束,这可能会对性能产生影响,尤其是在处理大量数据时。 `DROP` 语句则是用来...
### truncate, delete 以及 drop 区别汇总 #### 一、概述 在数据库管理中,经常需要对数据表进行各种操作,比如删除表中的数据、删除整个表等。`truncate`, `delete` 和 `drop` 是三种常见的 SQL 命令,它们在功能...
### SQL之TRUNCATE、DELETE与DROP的区别 #### 概述 在SQL中,`TRUNCATE`、`DELETE`和`DROP`都是用于管理数据库表的重要命令,但它们之间存在显著的区别。本文将深入探讨这三种命令的功能、用法及其应用场景。 ####...
在数据库管理中,`TRUNCATE`, `DELETE`, 和 `DROP` 是三种常见的数据操作语言(DML)与数据定义语言(DDL)。这三种命令都有助于管理和调整数据库表结构及其中的数据,但它们之间的差异十分重要。 #### 1. TRUNCATE...
### 数据库中truncate、delete与drop语句的深入解析 #### 一、基本概念与应用场景 在数据库管理中,`truncate`、`delete`与`drop`是三种常见的SQL语句,它们各自拥有不同的功能与用途,对于初学者来说,区分这三种...
注意:这里说的delete是指不带where子句的delete语句 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被...
truncate 和 delete 清空表数据的区别:truncate 是整体删除(速度较快),delete 是逐条删除(速度较慢);truncate 不激活
`DROP`、`TRUNCATE`和`DELETE`是SQL中用于删除数据的三个关键命令,它们各自有不同的特性和应用场景。以下是它们的详细对比和解释: 1. **DELETE语句**: DELETE是一种数据操纵语言(DML),这意味着它涉及到对...
本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下 ---创建表Table1 IF OBJECT_ID('Table1','U') IS NOT NULL DROP TABLE Table1 GO CREATE TABLE Table1 (ID INT NOT NULL,...
SQL语句中----删除表数据drop、truncate和delete的用法,对你爱不完
详细阐述了Oracle中三种删除的方式truncate,drop和delete三者的区别和联系.
drop、delete、truncate都表示删除,但是三者有一些差别: Delete用来删除表的全部或者一部分数据行,执行delete之后,用户需要提交(commmit)或者回滚(rollback)来执行删除或者撤销删除。会触发这个表上所有的...
在SQL中,删除数据有三种主要方式:DROP、TRUNCATE和DELETE。这些语句各自有不同的特性和适用场景,理解它们的区别对于有效地管理和维护数据库至关重要。 1. **DROP语句**: - DROP TABLE语句用于彻底删除一个表...
9.1.3 drop,delete与truncate的区别