我目前正在阅读微软的官方书籍“数据库管理基础知识”#39;准备参加考试。
我理解DDL和DML是什么,但Microsoft将DELETE显示为DDL和DML语句。我用谷歌搜索了这个,但我不能确认或否认这一点。
对此的一个很好的参考是问题:What is DDL and DML它将其显示为DML。以下是本书中的细分:
数据操作语言(DML)是允许的语言元素 您可以使用INSERT,UPDATE,DELETE和MERGE等核心语句 操纵任何SQL Server表中的数据。核心DML语句包括 以下内容:•SELECT:从数据库中检索行并启用 从一个或多个表中选择一个或多个行或列 在SQL Server中。 •INSERT:向表或a添加一个或多个新行 在SQL Server中查看。 •更新:更改一个或多个现有数据 表或视图中的列。 •DELETE:从表中删除行或 视图。 •MERGE:对a执行插入,更新或删除操作 目标表基于与源表的连接结果。
六个主要的DDL语句如下:•USE:更改 数据库上下文•CREATE:创建SQL Server数据库对象 (表,视图或存储过程)。 •ALTER:更改现有内容 宾语。 •DROP:从数据库中删除对象。 •TRUNCATE: 从表中删除行并释放这些行使用的空间。 • DELETE:从表中删除行但不释放使用的空间 删除了那些行。
这本书是否过时/错误。有人可以帮助阐明这一点我看到完整的DDL和DML语句的冲突列表。
答案 0 :(得分:1)
我同意你的看法,DELETE
是DML。而且,我敢说,TRUNCATE
也应该被认为是DML,因为逻辑上等同于DELETE
语句。 TRUNCATE
是DROP
和CREATE
的事实在我看来不足以证明将其分配给DDL,因为这两者一起作为一个原子操作执行,不会影响数据库的架构。