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

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

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

【问题讨论】:

  • 哇,我看了一眼这个问题的标题,读到“恶魔学:'那会改变事物'。”

标签: sql terminology 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 ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      相关资源
      最近更新 更多