术语:DML“修改事物”

时间:2009-09-30 14:24:50

标签: sql terminology dml

据我所知,DML技术上包含仅仅查询但不修改持久数据的SQL动词。 (例如,请参阅wikipediaoracleorafaq

但是,我经常希望引用“所有且只有那些修改存储/持久数据的SQL动词” - 基本上是INSERTUPDATEDELETE不是普通SELECT。对于这个DML子集,是否存在官方/标准化术语,或者可能单独使用一个有说服力且优雅的术语?

5 个答案:

答案 0 :(得分:2)

DML包含SELECT INTO(而不仅仅是SELECT),因为它是INSERT的同义词。没有必要进行细分。

在上班途中想到它之后,我记得SELECT 用于数据操作。例如:

SELECT t.firstname +' '+ t.lastname --String concatenation
SELECT CAST(t.column AS int) --Datatype change

答案 1 :(得分:1)

我的教授曾经将它们定义为Edits(而不是Reads),但我不知道宫内节育器的标准术语。

答案 2 :(得分:0)

基于CRUD:Create, read, update and delete,你可以说CUD(创建,更新,删除)。但是,我不确定是否有人使用它。

答案 3 :(得分:0)

可悲的是,从官方的角度来看,我认为没有一个。也许我们需要做一个?

就我个人而言,我认为术语DML具有误导性,因为该术语并没有真正描述SELECT的工作方式,因为它(通常)实际上并没有修改任何东西。它只在临时空间中以不同的方式“收集”关系数据并返回指定的一组。

所以,如果是我的选择,我会说:

DML 会描述INSERT / UPDATE / DELETE

DRL 数据检索语言会描述SELECT

答案 4 :(得分:0)

根据Wikipedia article on SQL

  

数据操作语言(DML)   是用于添加的SQL的子集,   更新和删除数据:

statements discussed there(INSERT,UPDATE,DELETE,MERGE,TRUNCATE等)放在different category而不是SELECT。

因此,根据维基百科,DML可能不一定包括SELECT。


根据SQL-92 standard,浏览目录显示DML确实包含SELECT INTO:

     13 Data manipulation ............................................371

     (...)

     13.5 <select statement: single row> .............................382

     (...)

其中列出的定义描述了SELECT <columns> INTO ...