为了账号安全,请及时绑定邮箱和手机立即绑定

为什么SQLANSI-92标准没有比ANSI-89更好地采用呢?

为什么SQLANSI-92标准没有比ANSI-89更好地采用呢?

料青山看我应如是 2019-07-05 15:19:30
为什么SQLANSI-92标准没有比ANSI-89更好地采用呢?在我工作过的每一家公司,我都发现人们仍然在用ANSI-89标准编写SQL查询:select a.id, b.id, b.address_1from person a, address bwhere a.id = b.id而不是ANSI-92标准:select a.id, b.id, b.address_1from person ainner join address bon a.id = b.id对于这样一个非常简单的查询,可读性没有太大的差别,但是对于大型查询,我发现将我的联接条件分组并列出表会使我们更容易发现JOIN中可能出现的问题,让我们在WHERE子句中保留所有筛选。更不用说,我觉得外部联接比Oracle中的(+)语法直观得多。当我试图向人们传教ANSI-92时,使用ANSI-92比ANSI-89有什么具体的性能效益吗?我会自己尝试,但是我们这里的Oracle设置不允许我们使用解释计划-不希望人们试图优化他们的代码,对吗?
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

我想到了几个理由:

  • 人们这样做是出于习惯
  • 人们比较懒惰,喜欢使用“旧风格”连接,因为它们只需要较少的输入。
  • 初学者常常在sql-92联接语法方面遇到问题。
  • 人们不会仅仅因为有新语法而改用新语法
  • 人们不知道新语法(如果您想称它为)所具有的好处,主要是它使您能够筛选表。

    以前

    你做一个外部连接,而不是在它之后,当你只有WHERE子句时。

就我而言,我使用SQL-92语法进行所有的联接,并在可能的情况下转换代码。这是一种更干净、更易读、更强大的方法。但是很难说服某人使用这种新样式,因为他们认为这样做会在不改变查询结果的同时增加输入工作量。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 1034 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信