据我所知,DML技术上包含仅仅查询但不修改持久数据的SQL动词。 (例如,请参阅wikipedia或oracle或orafaq)
但是,我经常希望引用“所有且只有那些修改存储/持久数据的SQL动词” - 基本上是INSERT
,UPDATE
,DELETE
但不是普通SELECT
。对于这个DML子集,是否存在官方/标准化术语,或者可能单独使用一个有说服力且优雅的术语?
答案 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)
数据操作语言(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 ...
。