是选择 DML 还是 DDL?

Posted

技术标签:

【中文标题】是选择 DML 还是 DDL?【英文标题】:Is Select a DML or DDL? 【发布时间】:2015-09-12 18:38:09 【问题描述】:

我正在处理 DML SQL 语句。 Select 就像他们所说的那样是一个 SQL 数据语句,这些也被称为 DML。

大多数文章都在下面解释它,例如: 如果如下使用 select 则归类为 DML

Select COl1, COl2 
into Table2 #this -- part will create a table named
                  -- as table2 with column col1 and col2
from Table1;      -- 3 columns will be copied from table1 to table2

1) 有人可以解释一下查询中到底发生了什么

Select COL1, Col2
into TABLE2
from TABLE1;

2) 这是一个 DML 语句?

3) SQL 数据语句和 DML 有什么区别,还是两者相同? http://www.firstsql.com/tutor1.htm

【问题讨论】:

数据操作语言 (DML) 是一种用于检索和处理数据的词汇表。使用这些语句添加、修改、查询或从数据库中删除数据。 dev.mysql.com/doc/refman/5.7/en/sql-syntax.html DDL 使用数据库结构。 DML 处理数据。 【参考方案1】:
    将从 TABLE1 选择的数据插入到 TABLE 2 它数据操作 从外观上看是一样的

编辑: 还要回答问题标题,SELECT 不是 DDL(数据定义语言)。 DDL 语句修改数据库布局,如CREATE TABLE。 DML语句是查询数据,如SELECT;或修改数据,如INSERT

另一个编辑: mysql 似乎不完全支持SELECT INTO。即使答案对一般 SQL 仍然有效。对我来说,SELECT INTO 的表创建方面是一个副作用。因此它仍然是一个 DML。

【讨论】:

so Select col1, col2 into table2 from table1 将创建一个新表或将数据插入表 1 中表 2 的某些列中,如果是,则表 2 中的哪一列? @VivekRana:它们是有序的,但最好使用INSERT TO ... SELECT 语法,这样您可以指定要影响的列。【参考方案2】:

我认为您可以正确地将其视为完成数据操作(选择和插入)和定义(表创建)的混合体。我认为您不会在标准语言中找到 SELECT...INTO,这是您可能无法在此处严格区分 DML 和 DDL 的原因之一。

【讨论】:

以上是关于是选择 DML 还是 DDL?的主要内容,如果未能解决你的问题,请参考以下文章

添加约束是DDL或DML

术语 DDL、DML 和 DCL 的起源是啥?

数据库必会必知 之 SQL四种语言:DDL DML DCL TCL

数据库必会必知 之 SQL四种语言:DDL DML DCL TCL(转)

ORA-38301:can not perform DDL/DML Over Object in Recycle Bin 11.2.0.4

初学者总结的DDL和DML语法!!!