是选择 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.htmlDDL
使用数据库结构。 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?的主要内容,如果未能解决你的问题,请参考以下文章
数据库必会必知 之 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