一个通称
INSERT,
UPDATe,
DELETE并且
MERGE是一个“更新”(即使它可能造成混乱-
而不是理想的-这
UPDATE仅仅是“更新”的一个子集)。替代术语是“关系分配”。
该通称
SELECT,
INSERT,
UPDATE,
DELETE,
MERGE(和任何用分号其他终止)被称为“声明”。
严格来说,“查询”是
SELECT返回结果集的语句(例如,将排除
SELECT..INTO..FROM语句)。但是,不幸的是,使用术语“查询”来指代更新是非正式的,但这是非常普遍的。例如,尽管“更新查询”是一个矛盾词,但是当我使用该确切术语(
site:stackoverflow.com"update query")在Google上对该网站进行Google搜索时,我得到了17,300次点击!
更新(双关语:)
@David Marx:我不同意您的说法,将INSERT / DELETE /
MERGE称为“更新”是适当的。那将非常令人困惑。只有UPDATE是更新。
我在最初的回答中同意,这种情况可能令人困惑。我们很幸运能够使用Stackoverflow格式化答案和注释,以便
UPDATE区分关键字和逻辑更新。以大写形式编写关键字(完全标准SQL-92要求:)也有帮助。
但是,通过阅读一般的数据库和计算机科学文献,我可以告诉您“更新”确实是正确的统称。我在下面为此提供了一个引文:
Hugh Darwen撰写的“关系数据库理论概论”(2010年)(免费提供pdf下载-Google):
预期在关系数据库管理系统的不同的更新运营商通常被称为
INSERT,DELETE并且UPDATE,那些是在教程d(也在SQL)[第28页]中使用的名称令人遗憾的是,关键字
UPDATE已被广泛接受为只是一个用于更新数据库的特定运算符的名称。请不要射击信使![p.168]尽管[关系]分配在理论上足以进行更新,但是使用速记表达目标relvar的当前值和新值之间的差异通常更为方便。有时…这种区别只是在现有集合中添加一个或多个元组;有时,它只是对某些现有元组的某些属性值的更改;有时只是删除一些现有的元组。对于这三个特殊情况下速记已经被称为
INSERT,UPDATE并DELETE分别自远古以来-
换句话说,即使是关系数据库出现之前,虽然这当然来临之前更新的目标是文件,而不是relvars或SQL桌子[p.165]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)