首页 文章

Delete如何既是DDL又是DML语句

提问于
浏览
2

我目前正在阅读微软的官方书籍“数据库管理基础”,以准备参加考试 .

我理解DDL和DML是什么,但Microsoft将DELETE显示为DDL和DML语句 . 我用谷歌搜索了这个,但我不能确认或否认这一点 .

对此的一个很好的参考是问题:What is DDL and DML将其显示为DML . 以下是本书中的细分:

数据操作语言(DML)是一种语言元素,允许您使用核心语句INSERT,UPDATE,DELETE和MERGE来操作任何SQL Server表中的数据 . 核心DML语句包括以下内容:•SELECT:从数据库中检索行,并允许从SQL Server中的一个或多个表中选择一个或多个行或列 . •INSERT:将一个或多个新行添加到SQL Server中的表或视图中 . •更新:更改表或视图中一列或多列中的现有数据 . •DELETE:从表或视图中删除行 . •MERGE:根据与源表的连接结果,对目标表执行插入,更新或删除操作 . 六个主要的DDL语句如下:•USE:更改数据库上下文 . •CREATE:创建SQL Server数据库对象(表,视图或存储过程) . •ALTER:更改现有对象 . •DROP:从数据库中删除对象 . •TRUNCATE:从表中删除行并释放这些行使用的空间 . •DELETE:从表中删除行但不释放已删除的行所使用的空间 .

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

1 回答

  • 0

    我同意你的意见, DELETE 是DML . 而且,我敢说, TRUNCATE 也应该被认为是DML,因为逻辑上等同于 DELETE 语句 . TRUNCATEDROPCREATE 这一事实在我看来不足以证明将其分配给DDL,因为这两者一起作为一个原子操作执行,不会影响数据库的模式 .

相关问题