例如:第二个连接SQL,有两种方式:
(1)选择a.c1,a.c2,b.c1,b.c2
从表一、表B
在张=数据

(2)选择a.c1,a.c2,b.c1,b.c2
从表1联接表B
在张=数据

哪种文字现在好用哪一种
你喜欢哪一个
复制代码代码如下所示:
SELECT * FROM A,B,张=数据
SELECT * FROM内连接在张=数据


哪两个好

11层的答案是最彻底的,事实上,这个问题还有一些历史的原因。无论你习惯什么样的习惯,只要你知道底细,你就不会被细枝末节所迷惑。

简单地说,前者是ANSI SQL 86,它是ANSI SQL 92标准(WI),这种视图最容易被接受。

什么是ANSI美国国家标准局是ISO中最重要的成员之一,在1918被发现。
什么是ANSI SQL正是ANSI注意到了SQL的生产力并使之规范化了。

什么是SQL他是IBM发明的,甲骨文开发了一种广泛的语言。

为什么他们是两家公司
70年代初,由于IBM各方面利益的激烈斗争,一头牛的研究成果只能用纸质的方式发表。
在70年代末,一家小公司在Oracle中使用了这一技术,直到几年后IBM DB2问世。

因此,SQL不是由ANSI发明的,ANSI标准不能吃掉所有的数据库平台。

例如,下面的这个数据库语法是什么ANSI标准对他来说是错误的。
SELECT * FROM(内连接在张=数据)内加入C

所以在ansi86数据库是什么Oracle和DB2都是肯定的。也有一些小角色在时间:Informix,dBASE系列,等。

和Sybase的数据库和SQLServer问世86年后,在访问前奇加入语法后90。

我没有使用旧的SQLServer和Oracle,但02年Oracle8i不支持ANSI 92内加入,他97岁的时候,oacle9i已经直到本世纪已经发布,更多人会问左T-SQL加入其中,张=数据(+)就可以了,其他的没有那么笨,说这在T-SQL * =。


看来ANSI的标准还不够事实上,国际标准化的定义4个层次和ansi92 N条款,这是不可能的。效果是我们满足入门级的就行了,其他的高级参考,即使ISO不会验证如加入其他水平及左。内部和连接就像过渡阶级,尴尬。


所以我在我面前打出5个星星的句子并不完全正确,正确的句子应该是正确的。

前者是用ANSI 86标准和ANSI 92入门级的标准,后者是与ansi92过渡级标准的整合。

不ansi92 Oracle8i的不符合,但不是一个高层次的规范,符合ansi92,但高水平标准的数据库系统是完全实现。

早在Oracle7,它完全符合ansi92,当然,入门级的,他是ansi92模板。

-回到上面的话题,哪一个是好的
当然,演出是完全一样的。这些差异仅仅是习惯和偏好,但由于标准水平不同,它们也有不同的风险。

如果你想优雅,易于维护,不容易写错误的代码,当然,使用高标准的第二种方法。
如果我们需要考虑风险因素,如迁移或集成多个平台,您应该使用第一个平台,至少在两个表中。

----
顺便提一下,ANSI标准已经修订:有多少版本没有列出我们得到的好处是自然的。例如,递归、对象、数组、XML等已在主流数据库的新版本中实现。