SQL术语:INSERT / UPDATE / DELETE的“查询”或“命令”?

问题描述 投票:11回答:3

哪个更适合调用INSERT/UPDATE/DELETE语句?命令还是查询?我会认为是“命令”,因为“查询”表示您正在询问一个问题并希望得到您的问题的答案(以及不仅仅是“是的,此操作已成功执行,而且,可选地,这是您的插入ID”的更多信息) 。

只是来自中级Web应用程序开发人员的一个问题,他同时还是一名通信专业的人,并且是具有特殊性的人。

sql command terminology
3个回答
9
投票

INSERTUPDATEDELETEMERGE的通用术语是一个“更新”(即使UPDATE只是以下内容的一个子集,但可能会造成混淆,但并不理想) “更新”)。一个替代术语是“关系分配”。

SELECTINSERTUPDATEDELETEMERGE(以及其他任何以分号结尾的东西)的通用术语被称为“声明”。

严格来说,“查询”是返回结果集的SELECT语句(例如,排除了SELECT..INTO..FROM语句)。但是,不幸的是,使用术语“查询”来指代更新(尽管非正式)非常普遍。例如,尽管“更新查询”是一个矛盾词,但是当我使用该确切术语(site:stackoverflow.com "update query")在Google上对该网站进行Google搜索时,我得到了17,300次点击!


更新(双关语:)

@@ David Marx:我不同意您的说法,即应提及插入/删除/合并作为“更新”。那将是极其令人困惑。只有UPDATE是更新。

我在最初的回答中同意,这种情况可能令人困惑。我们很幸运能够使用Stackoverflow格式化答案和注释,以便可以将关键字UPDATE与逻辑更新区分开;以大写形式编写关键字(完全标准SQL-92要求)也有帮助。

但是,通过阅读通用数据库和计算机科学文献,我可以告诉您,“更新”确实是正确的统称。我在下面为此提供了一个引文:

“关系数据库理论概论”(2010年),休·达尔文[免费提供pdf下载-Google it:]

关系DBMS中期望的不同更新操作符是通常称为INSERTDELETEUPDATE,这些是教程D中使用的名称(也在SQL中使用)[p.28]

[很遗憾,关键字UPDATE的使用范围如此广泛被接受为仅一个用于更新的特定操作员的名称数据库。请不要射击信使! [p.168]

尽管[关系]分配在理论上足以更新目的,通常使用速记会更方便表示目标当前值之间的差异relvar和新值。有时...这种不同只是在现有集合中添加一个或多个元组;有时候是只是更改一些现有属性的某些属性值元组有时只是删除一些现有的元组。这三个特殊情况的速记已被提及自时间以来分别为INSERTUPDATEDELETE不朽的-换句话说,甚至在关系的出现之前数据库,当然,在此之前,更新是文件,而不是relvars或SQL表[p.165]


5
投票

如有疑问,请称其为“陈述”。


0
投票

有时,除select之外的任何东西都被视为DML-数据操作语言。但是,这不是硬性和快速的区别。正如DML包含的选择一样。

© www.soinside.com 2019 - 2024. All rights reserved.