SQL中的INSERT和INSERT INTO有什么区别?

3

请问有人能告诉我在性能方面,INSERT INTO 和仅使用 INSERT 命令的区别吗?我只知道 INSERT INTO 执行速度更快,而 INSERT 则占用更少的网络带宽。

您能否详细解释一下,在哪些情况下应该使用 INSERT INTO,在哪些情况下应该使用仅使用 INSERT 呢?


INSERT语句中的INTO是可选的。 - Gordon Linoff
我知道INTO是可选的,但我想知道它们在性能方面的区别,哪个更好。 - Iftekhar Ilm
4
可能是INSERT vs INSERT INTO的重复内容。 - ehh
如果省略INTO,则您的命令字符串可能会更短,这意味着来自客户端的任何SQL字符串传输、命令解析或磁盘保存未编译代码的大小都会稍微减小 - 如果您可以访问ISO语言定义,则可以检查两者是否符合ISO标准。 - Cato
2个回答

4

没有区别,这是相同的命令。在语法中,into单词是可选部分。


我知道INTO是可选的,但我想知道它们在性能方面的区别,哪个更好。 - Iftekhar Ilm
1
没有任何区别。就像我说的,这是相同的命令。 - James Z
@Pred 'its' 是一种所有格形式,例如:猫摇了摇它的尾巴,而不是“猫摇了摇它是尾巴”,虽然 'it's' = 'it is'。在 SQL 中和 SQL 之外使用撇号时要小心。 - Cato
@AndrewDeighton 确实,我的错。结论:在发布之前再次阅读。已删除(因为5分钟后无法编辑)。 - Pred

0

在性能方面,两者是相同的,因此不会有任何差别。

现在,什么情况下会影响INSERT的性能呢?...

BEGIN TRANSACTION ... INSERT INSERT INSERT ... COMMIT.

事务框定了“一个原子工作单位”,有时候允许数据库引擎更有效地执行写操作。(但是,由于所谓的“事务隔离级别”选项,它也具有锁定的影响。)我建议您查阅文档以进一步了解此问题。


我通过客户端统计数据检查了 INSERT INTO 和只有 INSERT 的结果,确实在性能方面存在差异。INSERT INTO 执行更快,而只有 INSERT 占用的网络带宽较少。因此,说没有差别是错误的。 - Iftekhar Ilm
FYI,这是不正确的。T-SQL INSERT语句的官方语法在此处找到:https://msdn.microsoft.com/en-us/library/ms174335.aspx。该页面明确指出,`INTO` *"是可选关键字,可以在INSERT和目标表之间使用。" *##然而,很容易(认为你)“看到”差异的经验证据,尽管EXPLAIN语句会证明否则。在标准SQL中,以及大多数其他实现中,需要使用该关键字。 - Mike Robinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接