栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL命名法:INSERT / UPDATE / DELETE是``纯粹的''还是``指令性的''?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL命名法:INSERT / UPDATE / DELETE是``纯粹的''还是``指令性的''?

一个通称

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]



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647467.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号