截断和删除之间的区别

作者: Laura McKinney
创建日期: 2 四月 2021
更新日期: 13 可能 2024
Anonim
oracle 12051 【了解】截断表
视频: oracle 12051 【了解】截断表

内容

主要区别

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”子句,因为它是全部或没有。

什么是删除?

在数据库SQL中,DELETE表示从表中删除一个或多个记录或数据的语句。可以使用删除所有记录的条件为删除/删除定义一个子集。像MySQL这样的某些数据库管理系统(DBM)允许使用一个DELETE语句(也称为多表DELETE)从各种表中删除行。 DELETE语句的语法为DELETE FROM table_name 。现在,与“ WHERE”条件匹配的任何行将从表中删除。如果语句中省略了“ WHERE”子句,则会删除表中的所有行。因此,请谨慎使用“删除”声明。此外,“ DELETE”语句不返回任何行;那将不会生成结果集。

关键差异

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

Perigee vs. Apogee-有什么区别?

John Stephens

可能 2024

近地点 api(希腊语:ἁψίς;复数apide,希腊语:ἁψῖδες)是物体轨道中的一个极端。这个词来自拉丁语,来自希腊语,与后殿同源。对于较大物体的椭圆轨道,有两个近侧,以前缀peri-(源自περί(peri),意为近)和ap- / apo-(源自ἀπ(ό)(ap(ó))命名,从)添加到对正在运行的物体的引用。对于绕太阳运行的物体,最小距离的点是近日点(),而最大距离的点是日头...

药剂师和药剂师之间的主要区别是 药剂师是一名从事药学工作的卫生保健专业人员 和 药剂师是医学专业人士的历史名称,现在被称为药剂师。 药剂师 药剂师,也被称为化学家(英联邦英语)或药剂师(北美以及古时的英联邦英语),是从事药学的卫生专业人士,药学专业是致力于安全有效使用药物的卫生科学领域。药剂师是直接与患者护理有关的卫生保健团队的成员。药剂师接受大学教育,以了解药物的生化机制和作用,药物用途,治...

我们建议你看到