mag*_*tic 6 dml select database-theory
查看名称数据操作语言 (DML)我会假设,所有包含的语句实际上都是用于操作数据。
据我所知该SELECT语句只能用于查询数据,不能更改它。(INSERT ... SELECT这里不考虑。)
所以是SELECTDML 的一部分,如果是,为什么?
DML 可以被认为是排除SELECT语句。Wikepidia.org 的“数据操作语言”条目描述如下:
纯只读的 SELECT 查询语句被归类为“SQL-data”语句2,因此被标准认为是在 DML 之外。SELECT ... INTO 表单被认为是 DML,因为它操作(即修改)数据。但在通常的实践中,并没有做出这种区分,SELECT 被广泛认为是 DML 的一部分。
作为缺乏区分的一个例子,Oracle 11.2 概念指南包括 SELECTS as DML 如下:
数据操作语言 (DML) 语句查询或操作现有模式对象中的数据。DDL 语句使您能够更改数据库的结构,而 DML 语句使您能够查询或更改内容。
在最严格的意义上,aSELECT可以做的不仅仅是查询数据。至少在 Oracle 中,有 for_update_clause 可以“让您锁定选定的行,以便其他用户在您结束事务之前无法锁定或更新这些行”。(来自SQL 语言参考)。