术语:DML“修改事物”

Posted

技术标签:

【中文标题】术语:DML“修改事物”【英文标题】:Terminology: DML "that modifies things" 【发布时间】:2010-12-02 16:14:58 【问题描述】:

我了解 DML 在技术上包含仅查询但不修改持久数据的 SQL 动词。 (参见,例如,wikipedia 或 oracle 或 orafaq)

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

【问题讨论】:

哇,我看了一眼这个问题的标题,读到“恶魔学:'那会改变事物'。” 【参考方案1】:

DML 包括 SELECT INTO(而不仅仅是 SELECT),因为它是 INSERT 的同义词。无需细分。

上班路上想了想,才想起SELECT 是用来操作数据的。例如:

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

【讨论】:

是的,DML 是您要查找的术语。 是的,很聪明,但是一个普通的 SELECT 只能转换临时投影中的数据,它不能修改存储或持久的数据,这是我问题背后的意图。我会澄清的。 @pilcrow:修改意味着持久性,但在某些情况下不需要持久性 - 需要是暂时的。但这仍然是数据操作。【参考方案2】:

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

【讨论】:

嗯,我更喜欢这样:“DML 编辑。”【参考方案3】:

遗憾的是,从官方的角度来看,我认为没有。或许我们需要补一张?

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

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

DML 将描述 INSERT/UPDATE/DELETE

DRL数据检索语言将描述 SELECT

【讨论】:

已接受。虽然我认为我们会无休止地争论新术语,但我认为你的答案的主旨已经死了。 也许我们都同意 DML 的意思是“数据操作语言”(与 DDL 相对,仍然是“数据定义语言”)。 :)【参考方案4】:

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

【讨论】:

【参考方案5】:

根据Wikipedia article on SQL,

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

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

因此,根据 Wikipedia,DML 可能不一定包含 SELECT。


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

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

     (...)

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

     (...)

那里列出的定义描述了SELECT &lt;columns&gt; INTO ...

【讨论】:

以上是关于术语:DML“修改事物”的主要内容,如果未能解决你的问题,请参考以下文章

oracle--事物---

Oracle增删改DML脚本记录

对于既不是分类也不是回归的事物,正确的术语是啥?

Eureka术语详解(用具体的事物理解抽象的概念)

03_[Linux操作系统]Linux的权限及权限管理

03_[Linux操作系统]Linux的权限及权限管理