小编典典

Delete如何既是DDL又是DML语句

sql

我目前正在阅读正式的Microsoft书籍“数据库管理基础知识”,以准备参加考试。

我了解什么是DDL和DML,但Microsoft会将DELETE视为DDL和DML语句。我已经用谷歌搜索过,但是我无法证实或否认这一点。

对此问题的一个很好的参考:什么是DDL和DML,将其显示为DML。以下是本书中的部分:

数据操作语言(DML)是一种语言元素,它使您可以使用核心语句INSERT,UPDATE,DELETE和MERGE来操作任何SQL
Server表中的数据。核心DML语句包括以下内容:SELECT(选择):从数据库中检索行,并允许从SQL
Server中的一个或多个表中选择一个或多个行或列。INSERT:将一个或多个新行添加到SQL
Server中的表或视图中。UPDATE:更改表或视图中一个或多个列中的现有数据。``DELETE:从表或视图中删除行。合并:根据与源表的联接结果在目标表上执行插入,更新或删除操作。

六个主要DDL语句如下:USE(使用):更改数据库上下文。CREATE:创建一个SQL
Server数据库对象(表,视图或存储过程)。ALTER:更改现有对象。-DROP:从数据库中删除对象。截断(TRUNCATE):从表中删除行并释放这些行使用的空间。删除:从表中删除行,但不会释放被删除的行所使用的空间。

这本书是不是过时了/错了。有人可以帮助阐明这一点吗?我看到了完整的DDL和DML语句的冲突列表。


阅读 692

收藏
2021-03-08

共1个答案

小编典典

我同意你的看法,DELETE是DML。而且,我敢说,TRUNCATE也应该考虑DML,因为从逻辑上讲它等效于一条DELETE语句。这事实上TRUNCATEDROPCREATE是不够的,在我看来,以证明它分配给DDL,因为两人在一起,进行作为一个原子操作,不影响数据库的模式。

2021-03-08