Pau*_*uno 11 sql command nomenclature
哪个更适合调用INSERT/UPDATE/DELETE语句?命令或查询?我认为"命令",因为"查询"意味着你提出一个问题,并期望得到你的问题的答案(和更多的信息,而不仅仅是"是的,这个操作是成功执行的,并且,可选地,这里是你的插入ID") .
只是来自中级Web应用程序开发人员的问题,他也是一名通信专业人员,并且是一位喜欢特异性的人.:)
一个通称INSERT
,UPDATE
,DELETE
并且MERGE
是一个"更新"(即使它可能造成混乱-而不是理想的-这UPDATE
仅仅是"更新"的一个子集).另一个术语是"关系分配".
对于通用术语SELECT
,INSERT
,UPDATE
,DELETE
,MERGE
(和任何用分号其他终止)被称为"声明".
严格地说,"查询"是一个SELECT
返回结果集的语句(例如,它会排除SELECT..INTO..FROM
语句).但是,使用术语"查询"来表示更新,虽然是非正式的,但遗憾的是很常见.例如,虽然"更新查询"是一个矛盾的说法,但当我使用该确切术语(site:stackoverflow.com "update query"
)搜索此网站时,我会获得17,300次点击!
更新(双关语:)
@David Marx:我不同意你的说法,即将INSERT/DELETE/MERGE称为'更新'是合适的.这将是非常令人困惑的.只有UPDATE才是更新.
我在原来的答复中同意这种情况可能令人困惑.我们很幸运Stackoverflow能够格式化答案和注释,以便UPDATE
可以将关键字与逻辑更新区分开来; 以大写形式编写关键字(按照完整标准SQL-92 :)的要求也有帮助.
但是,通过阅读通用数据库和计算科学文献,我可以告诉你"更新"确实是正确的集体术语.我在下面提供了一个引用:
"关系数据库理论简介"(2010),Hugh Darwen [免费pdf下载 - Google it):
预期在关系数据库管理系统的不同的更新运营商通常被称为
INSERT
,DELETE
并且UPDATE
,那些是在教程d(也在SQL)[第28页]中使用的名称令人遗憾的是,关键字
UPDATE
已被广泛接受为仅用于更新数据库的一个特定运算符的名称.请不要拍信使![第168页]尽管[关系]赋值在理论上足以用于更新目的,但通常使用表示目标relvar的当前值与新值之间的差异的简写来更方便.有时......差异只是在现有集合中添加了一个或多个元组; 有时它只是改变了一些现有元组的某些属性值; 有时它只是删除了一些现有的元组.对于这三个特殊情况下速记已经被称为
INSERT
,UPDATE
并DELETE
分别自远古以来-换句话说,即使是关系数据库出现之前,虽然这当然来临之前更新的目标是文件,而不是relvars或SQL的桌[第165页]