当前位置: 首页 > 面试题库 >

Delete如何既是DDL又是DML语句

黄德明
2023-03-14
问题内容

我目前正在阅读正式的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语句的冲突列表。


问题答案:

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



 类似资料:
  • 我读过关于记忆障碍如何工作的不同文章。 例如,用户Johan在这个问题中的回答说,内存屏障是CPU执行的指令。 虽然用户Peter Cordes在这个问题中的评论对CPU如何重新排序指令说了以下内容: 它的读取速度比执行速度快,因此它可以看到即将到来的指令窗口。有关详细信息,请参阅 x86 标签 wiki 中的一些链接,如 Agner Fog 的微搜索 pdf,以及大卫·坎特对英特尔哈斯韦尔设计的

  • 本文向大家介绍详解SQL四种语言:DDL DML DCL TCL,包括了详解SQL四种语言:DDL DML DCL TCL的使用技巧和注意事项,需要的朋友参考一下 看到很多人讨论SQL还分为四种类型,在这里知识普及一下,并总结下他们的区别吧。 1. DDL – Data Definition Language 数据库定义语言:定义数据库的结构。 其主要命令有CREATE,ALTER,DROP等,下

  • 我正在构建一个Hyperledger结构网络,并试图让一个组织同时拥有一个对等节点和一个订购节点。我使用cryptogen生成证书和密钥,并且只创建一个组织作为“对等组织”。我有一个网络,有6个组织——其中5个有一个对等组织,一个有一个订购者的订购者组织。然后,我获取了这些配置文件,删除了order组织,并将orderendpoint添加到一个对等组织中。我现在犯了一个错误。 打印到屏幕上: 错误

  • 我读到,java源代码被编译成“字节码”,然后通过JIT再次“编译”成“机器码”。也就是说,源代码首先编译成独立于平台的字节码,然后再次编译成特定于机器的代码。那么为什么它同时被称为解释语言和编译语言呢?解释发生在哪里?

  • 问题内容: 我正在尝试使用JDBC在Oracle 11g数据库上执行DDL语句。我现在用的是这样做的的类。 以下是执行查询并尝试确定查询结果的代码段: 我不是数据库专家,但是是否存在DDL语句执行失败且不引发的情况?如果没有,则无需捕获execute方法返回的内容。缺少表示DDL语句成功执行。 我正在关注的教程建议对DDL语句使用此方法: 尽管Jdbc文档建议使用来执行DDL语句。两者中哪一个更可

  • 我们目前正在运行Flyway,以处理捆绑在文件。 我们希望将它们分别处理(例如,作为 和 ),并将 DDL 作为所有者架构运行,以用户身份运行 DML。 这样跑Flyway的推荐方法是什么?这是Flyway的典型场景吗? 我们考虑过运行Flyway的两个实例(每个实例一个),但是我们想象我们可能希望能够交错DDL和DML。