截断(truncate)和删除(delete)的区别

DELETE和TRUNCATE是结构化查询语言(SQL)中用于从表中删除记录或数据的两个术语。虽然这两个命令的最终结果是相同的,但这两个命令之间也存在一些差异,这是很重要的,需要理解。DELETE和TRUNCATE的主要区别在于DELTE是一个数据操作语言(DML)命令,而TRUNCATE是一个数据定义语言(DDL)命令。...

主要区别

DELETE和TRUNCATE是结构化查询语言(SQL)中用于从表中删除记录或数据的两个术语。虽然这两个命令的最终结果是相同的,但这两个命令之间也存在一些差异,这是很重要的,需要理解。DELETE和TRUNCATE的主要区别在于DELTE是一个数据操作语言(DML)命令,而TRUNCATE是一个数据定义语言(DDL)命令。

什么是截断(truncate)?

TRUNCATE也是一个日志操作。TRUNCATE TABLE语句是SQL中的一个DDL命令,它标记要释放的表的范围。此操作的结果是,表中的所有数据都会立即删除,通常会绕过一些完整性强制机制。它是在SQL:2008标准中引入的。“TRUNCATE TABLE mytable”语句在逻辑上等同于不带“WHERE”子句的“DELETE FROM mytable”语句。“TRUNCATE TABLE”通过释放表使用的数据页立即删除表中的所有数据。这减少了记录删除操作的资源开销,以及所需的锁数量。我们不能在“TRUNCATE TABLE”语句中指定“WHERE”子句,因为它要么全有要么全无。

什么是删除(delete)?

在数据库SQL中,DELETE意味着从表中删除一个或多个记录或数据的语句。可以使用移除所有记录的条件来定义移除/删除子集。一些数据库管理系统(DBMs)如MySQL允许使用一个delete语句(也称为multi table delete)从多个表中删除行。DELETE语句的语法是DELETE FROM table_name[WHERE condition]。现在,符合“WHERE”条件的任何行都将从表中删除。如果语句中省略了“WHERE”子句,则表中的所有行都将被删除。因此,“DELETE”语句应该谨慎使用。此外,“DELETE”语句不返回任何行;也就是说,它不会生成结果集。

主要区别

  1. DELETE是数据操作语言(DML)命令,TRUNCATE是数据定义语言(DDL)命令。
  2. TRUNCATE比DELETE快得多,因为它可以立即擦除所有数据。
  3. 删除中需要“WHERE”条件。如果语句中省略了“WHERE”子句,则表中的所有行都将被删除。但我们不能在“TRUNCATE TABLE”语句中指定“WHERE”子句,因为它要么全有要么全无。
  4. DELETE从表中删除部分或所有行,而TRUNCATE删除所有行。
  5. DELETE导致表上的所有DELETE触发器触发,而TRUNCATE操作期间没有触发触发器,因为它不适用于单个行。
  6. Delete可用于索引视图,TRUNCATE不能用于索引视图。
  7. DELETE使用行锁执行,表中的每一行都被锁定删除,TRUNCATE使用表锁执行,所有表都被锁定以删除所有记录。

对比视频

  • 发表于 2020-09-05 01:03
  • 阅读 ( 132 )
  • 分类:教育

你可能感兴趣的文章

ddl公司(ddl)和dml公司(dml)的区别

...言。这种语言用于改变数据库的结构。Create、Alter、Drop、Truncate是一些DDL命令。 图01:SQL ddl命令示例 请参阅以下用TSQL(MSSQL server)编写的DDL示例; 下面的语句将创建一个名为“employee”的数据库。 创建数据库员工; 下面的语句...

  • 发布于 2020-10-24 04:48
  • 阅读 ( 258 )

删除(deletion)和染色体复制(duplication of chromosome)的区别

...染色体复制 4. 染色体缺失与重复的相似性 5. 并排比较-删除与重复染色体的表格形式 6. 摘要 什么是染色体缺失(deletion of chromosome)? 染色体缺失是一种染色体重排。这只是染色体臂的一部分缺失。染色体可以从两个不同的位置...

  • 发布于 2021-03-04 18:47
  • 阅读 ( 301 )

如何在excel中使用trunc函数

...别。 什么是trunc函数(the trunc function)? TRUNC函数将数字截断为指定的小数位数。使TRUNC不同于其他去掉小数点的函数的关键因素是TRUNC函数不舍入值。如果使用TRUNC删除值4.68中的所有小数,则结果为4。 TRUNC函数需要两条信息: =T...

  • 发布于 2021-04-02 13:06
  • 阅读 ( 211 )

如何在linux上安全地删除文件

...盖。 用随机数据再覆盖5次。 将文件重命名为随机值。 截断文件。 如果你觉得这些都太过分了,那你就有好朋友了。在奥克兰大学教授彼得·古特曼看来,这也太过分了。他在1996年发表了一篇讨论这些技术的论文,由此产生了...

  • 发布于 2021-04-03 10:54
  • 阅读 ( 186 )

如何阻止超过140个字符的tweet(如果你真的必须的话)

...feed只发送短的文本信息,那就太好了。 在编写Tweets时,Truncator会为Firefox用户修剪Twitter消息,但Opera似乎没有选择。随着Twitter用户厌倦了双重生活,这种情况可能会很快改变。 请注意,所有这些扩展都需要权限才能查看您在其...

  • 发布于 2021-04-07 02:57
  • 阅读 ( 178 )

截断(truncate)和删除(delete)的区别

...因的。在前面的讨论中你会明白的。 什么是截断命令(a truncate command)? Truncate命令的目的是删除整个表。因此,当您使用Truncate命令时,您将丢失表中的所有数据,在使用它时应谨慎。让我们知道如何使用它。 Truncate的语法: 截...

  • 发布于 2021-06-25 01:12
  • 阅读 ( 303 )

切(cut)和删除(delete)的区别

“剪切”和“删除”的主要区别在于,“剪切”从文档中删除文本或其他内容并将其保存到剪贴板,而“删除”从文档中删除文本或其他内容而不保存到剪贴板。 在使用Microsoft Word等计算机应用程序时,需要执行各种活动,如创...

  • 发布于 2021-06-30 17:08
  • 阅读 ( 429 )

新的(new)和C++中删除运算符(delete operator in c++)的区别

...关键领域 1、C++中新操作符是什么?定义、功能2。C++中的删除操作符是什么?定义、功能3。C++中新的和删除操作符的区别是什么? 关键术语 C++,删除运算符,内存分配,新操作符 什么是C++中的新(new in c++)? 新操作符分配内存...

  • 发布于 2021-07-01 04:35
  • 阅读 ( 179 )

滴(drop)和在sql中删除(delete in sql)的区别

... sql)? DROP是SQL中的DDL命令。 程序员可以使用DROP从RDBMS中删除现有的数据库。 删除数据库信息; 上面的命令删除/删除名为schoolInfo的数据库。 此外,还可以对数据库对象(如表)执行DROP。下面是一个例子。 下桌学生; 该命令...

  • 发布于 2021-07-01 13:05
  • 阅读 ( 228 )

滴(drop)和截断(truncate)的区别

Drop和Truncate的主要区别在于,Drop是一个DDL命令,有助于删除表的所有记录、删除表结构并从系统中删除数据库,而Truncate是一个DDL命令,有助于从表中删除记录。 RDBMS一般是按照关系模型设计的数据库管理系统。它有助于在数据...

  • 发布于 2021-07-02 00:39
  • 阅读 ( 223 )
l68898168
l68898168

0 篇文章

相关推荐