我目前正在阅读微软官方的“数据库管理基础”一书,准备参加考试。
我理解DDL和DML是什么,但是微软显示DELETE是DDL和DML语句。我已经在谷歌上搜索过,但我不能有任何东西证实或否认这一点。
这方面的一个很好的参考是问题:What is DDL and DML,它将它显示为一个DML。以下是本书的部分内容:
数据操作语言(DML)是允许您使用核心语句INSERT、UPDATE、DELETE和MERGE来操纵任何Server表中数据的语言元素。核心DML语句包括以下内容:·SELECT:从数据库检索行,并允许从Server中的一个或多个表中选择一行或多个行或列。插入:将一个或多个新行添加到Server中的表或视图中。更新:更改表或视图中一个或多个列中的现有数据。删除:从表或视图中删除行。合并:根据与源表连接的结果对目标表执行插入、更新或删除操作。 六个主要的DDL语句如下:·USE:更改数据库上下文。创建:创建Server数据库对象(表、视图或存储过程)。·ALTER:更改现有对象。·DROP:从数据库中删除一个对象。·截断:从表中删除行,并释放这些行所使用的空间。删除:从表中删除行,但不释放被删除的行所使用的空间。
这本书过时了/错了吗?有人能帮助阐明这一点吗?我看到了完整的DDL和DML语句的冲突列表。
发布于 2017-03-01 12:37:38
我同意你的观点,DELETE
是DML。此外,我敢说,TRUNCATE
也应该被认为是DML,因为逻辑上等同于DELETE
语句。在我看来,TRUNCATE
是一个DROP
和CREATE
这一事实不足以证明将它分配给DDL是合理的,因为这两个作为一个原子操作一起执行的操作不影响数据库的模式。
https://stackoverflow.com/questions/42536536
复制相似问题