删除(delete)和在sql中截断(truncate in sql)的区别

SQL中的delete语句命令是一种数据操作语言(DML)。此命令用于从特定表中删除任何特定行。命令中的where子句指定要删除的确切行的位置。可以在命令中指定与查询相关的任何特定属性,并且可以删除该行。...
关键区别:Delete和Truncate是SQL命令,用于执行特定的操作。这些是不同类型的数据语言。“DELETE”命令用于从表中删除任何特定行,而“TRUNCATE”命令用于从表中删除数据。
删除(delete)和在sql中截断(truncate in sql)的区别

SQL中的delete语句命令是一种数据操作语言(DML)。此命令用于从特定表中删除任何特定行。命令中的where子句指定要删除的确切行的位置。可以在命令中指定与查询相关的任何特定属性,并且可以删除该行。

“DELETE”命令的语法表示为:

从表中删除名称[WHERE condition];

任何符合WHERE条件的行都将从表中删除。如果省略WHERE子句,表中的所有行都将被删除。DELETE语句必须小心使用。在使用DELETE语句之后,数据有可能丢失。另外,在执行DELETE语句之后,也有可能在其他表中引发触发器。

例如,如果两个表由外键链接,并且被引用表中的行被删除,则引用表中的行也必须被删除以保持引用完整性是很常见的。

删除(delete)和在sql中截断(truncate in sql)的区别

SQL中的truncate语句是一种数据定义语言(DDL)。这些语句用于从表中删除整个数据。此操作的结果会快速删除表中的所有数据,通常会绕过许多完整性强制机制。该语句不使用Where子句,只是清空表,其功能类似于delete语句。一旦暗示了该命令,表就会被清除,因此必须小心使用该命令。

“TRUNCATE”命令的语法如下:

截断表名;

此命令一旦使用就无法恢复数据;在第一次尝试时,它会清除表中的所有数据。因此,受尊重表的数据完全从数据库的所有角落丢失。

SQL中Delete和Truncate的比较:

 

在SQL中删除 在SQL中截断
他们是 执行DELETE是为了从表中删除特定行。 在表中执行TRUNCATE以清除整个表。
功能 DELETE语句一次删除一行,并在事务日志中为每个删除的行记录一个条目。 TRUNCATE TABLE通过取消分配用于存储表数据的数据页来删除数据,并在事务日志中仅记录取消分配的页。
数据语言类型 它是DML(数据操作语言)命令。 它是DDL(数据定义语言)命令。
Where子句的用法 这里使用Where子句。 这里不使用Where子句。
日志维护 它维护日志,因此比截断慢。 事务日志中的日志记录最少,因此速度更快。
保持能力 列的标识保留DELETE,但保留该标识。 如果表包含任何标识列,则标识列将重置为其种子值。
许可 要使用Delete,您需要表的Delete权限。 要在表上使用Truncate,至少需要对该表具有ALTER权限。
索引视图 它可以用于索引视图。 它不能用于索引视图。
触发 在TRUNCATE表中,触发器没有激活,因此操作不会记录单个行的删除。 Delete激活触发器,因为操作是单独记录的。
空间利用率 Delete比Truncate语句使用更多的事务空间。 Truncate使用的事务空间比Delete语句少。

  • 发表于 2021-07-13 20:33
  • 阅读 ( 152 )
  • 分类:通用

你可能感兴趣的文章

哪里(where)和sql中的having子句(having clause in sql)的区别

...use in sql)? 它有助于根据给定的条件从表中检索、更新或删除一组特定的数据。程序员可以使用where子句来限制和获取所需的数据。查询只对where子句指定的条件为true的记录执行。它可以与select、update和delete一起使用。   参考下...

  • 发布于 2020-10-24 02:15
  • 阅读 ( 236 )

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

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

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

sql语句(sql)和hql公司(hql)的区别

...)、update(负责更改表中一行或多行的值)、delete(负责删除表中一行或多行)和通过查询创建模式。 HQL(Hibernate查询语言)将面向对象编程的概念扩展到了现有的SQL。它易于学习,语法与SQL相似。它具有聚合函数、groupby或orde...

  • 发布于 2021-06-23 19:43
  • 阅读 ( 309 )

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

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

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

sql语句(sql)和mysql数据库(mysql)的区别

...构建新的数据库和表”alter'帮助修改表。'drop命令有助于删除数据库和表。 select、insert、update和delete等命令都是DML命令选择“命令帮助检索一组记录”“**”有助于输入新记录。此外,“update”命令修改记录,“delete”命令删除...

  • 发布于 2021-06-30 18:44
  • 阅读 ( 420 )

sql语句(sql)和plsql语言(plsql)的区别

...理数据。它是标准的数据库语言。用户可以使用SQL创建、删除数据库和表。还可以创建视图和存储过程等。SQL命令有三种类型:数据定义语言(DDL)、数据操作语言(DML)和数据控制语言(DCL)。 ddl公司 CREATE、ALTER和DROP等命令...

  • 发布于 2021-06-30 23:38
  • 阅读 ( 255 )

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

...alter。create命令有助于创建新的数据库和表。drop命令帮助删除数据库和表,而alter命令帮助修改已经存在的数据库对象,如表。这些是一些常见的DDL命令。 什么是dml公司(dml)? DML代表数据操作语言。DML命令有助于管理存储在数据...

  • 发布于 2021-07-01 05:31
  • 阅读 ( 381 )

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

delete和truncate的主要区别是delete从表中删除单个、多个或所有记录,truncate从数据库中删除所有记录以及表的结构。 数据库是相关数据的集合。数据库管理系统(DBMS)允许在数据库中创建和管理数据。此外,遵循关系模型的DBMS...

  • 发布于 2021-07-01 07:59
  • 阅读 ( 242 )

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

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

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

改变(alter)和在sql中更新(update in sql)的区别

...employee RENAME 出生日期至出生日期; 此外,还可以从表中删除列。下面的语句从employee表中删除列地址。 ALTER表employee DROP(address); 什么是在sql中更新(update in sql)? “UPDATE”是帮助更改表中记录的DML命令。 例如,假设雇员100的...

  • 发布于 2021-07-01 13:30
  • 阅读 ( 229 )
Tony_CTS
Tony_CTS

0 篇文章

相关推荐