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

SQL(结构查询语言)命令Delete和Truncate都用于删除数据库中表中存储的数据。Delete是一个DML(数据操作语言)语句,它删除表中的部分或所有行。“Where子句”用于指定需要删除的行,如果Where子句未与Delete语句一起使用,它将删除表中的所有数据。Truncate是一个DDL(数据定义语言)语句,它从表中删除整个数据。这两个命令都不会破坏表结构和对表的引用,只会根据需要删...

删除vs截断

SQL(结构查询语言)命令Delete和Truncate都用于删除数据库中表中存储的数据。Delete是一个DML(数据操作语言)语句,它删除表中的部分或所有行。“Where子句”用于指定需要删除的行,如果Where子句未与Delete语句一起使用,它将删除表中的所有数据。Truncate是一个DDL(数据定义语言)语句,它从表中删除整个数据。这两个命令都不会破坏表结构和对表的引用,只会根据需要删除数据。

删除语句

Delete语句允许用户根据指定的条件从数据库中的现有表中删除数据,而“Where子句”用于确定此条件。Delete命令被称为日志执行,因为它一次只删除一行,并在事务日志中为每一行删除保留一个条目。所以,这会导致操作变慢。Delete是一个DML语句,因此在执行命令时不会自动提交它。因此,如果需要,可以回滚删除操作以再次访问数据。在执行Delete命令之后,应该提交或回滚它,以便永久保存更改。Delete语句不会从数据库中删除表的表结构。它也不会释放表使用的内存空间。

Delete命令的典型语法如下所述。

从<表格名称中删除>

从<table_name>WHERE<condition>中删除;

截断语句

Truncate语句删除数据库中现有表中的所有数据,但它保留相同的表结构、完整性约束、访问权限和与其他表的关系。因此,如果用户希望再次重用表,则不需要重新定义表,并且可以使用旧的表结构。Truncate通过取消分配用于保存数据的数据页来删除整个数据,而事务日志中只保留这些页释放。因此,truncate命令只使用较少的系统和事务日志资源进行操作,因此它比其他相关命令更快。Truncate是一个DDL命令,因此它在语句执行前后使用自动提交。因此,truncate不能以任何方式再次回滚数据。它在执行之后释放表使用的内存空间。但是Truncate语句不能应用于由外键约束引用的表。

下面是Truncate语句的常用语法。

截断表格<表格名称>

Delete和Truncate有什么区别?1Delete和Truncate命令从数据库中现有的表中删除数据,而不会损害表结构或对表的其他引用。但是,Delete命令只能用于删除使用相关条件的表中的特定行,也可以用于不带任何条件地删除所有行,而Truncate命令只能用于删除表中的整个数据。Delete是一个DML命令,它可以根据需要回滚操作,但是Truncate是一个DDL命令,因此它是一个自动提交语句,不能以任何方式回滚。因此,在数据库管理中谨慎使用该命令是非常重要的。Truncate操作比Delete操作消耗更少的系统资源和事务日志资源,因此Truncate被认为比Delete更快。另外,Delete不会释放表所使用的空间,而Truncate则释放执行后使用的空间,因此从数据库表中删除整个数据时,Delete的效率不高。但是,当表被外键约束引用时,不允许使用Truncate,在这种情况下,可以使用Delete命令代替Truncate.7。最后,这两个命令在数据库管理系统中的应用既有优点也有缺点,用户应该意识到适当地使用这些命令以获得良好的效果。

  • 发表于 2020-11-02 19:25
  • 阅读 ( 151 )
  • 分类:IT

你可能感兴趣的文章

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

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

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

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

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

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

如何在excel中使用trunc函数

Excel中有多种方法可以删除小数点和缩短数值。在本文中,我们将解释如何使用TRUNC函数以及它与其他技术的区别。 什么是trunc函数(the trunc function)? TRUNC函数将数字截断为指定的小数位数。使TRUNC不同于其他去掉小数点的函数...

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

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

...因与撕碎旧纸质文档的原因相同。我们将告诉您有关安全删除Linux文件的需要了解的内容。本教程介绍了shred命令和secure delete实用程序套件。 删除的文件通常是可恢复的 删除一个文件实际上并不会将其从硬盘中删除。这完全取...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 发布于 2021-07-02 00:39
  • 阅读 ( 236 )
zsvs86134
zsvs86134

0 篇文章

相关推荐