Oracle多种表连接方式.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle多种表连接方式

1. 内连接(自然连接)2. 外连接(1)左外连接 (左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制)3. 自连接(同一张表内的连接)SQL的标准语法:select?table1.column,table2.column?from?table1?[inner?|?left?|?right?|?full?]?join?table2?on?table1.column1?=?table2.column2;?inner join 表示内连接;left join表示左外连接;right join表示右外连接;full join表示完全外连接;on子句 用于指定连接条件。注意:如果使用from子句指定内、外连接,则必须要使用on子句指定连接条件;如果使用(+)操作符指定外连接,则必须使用where子句指定连接条件。一. 内连接(Inner Join/Join)1.1? Inner JoinInner join逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。这个和用select查询多表是一样的效果,所以内连接用的很少。还有一点要说明的就是Join 默认就是inner join。 所以我们在写内连接的时候可以省略inner 这个关键字。1.2 下面举例来说明内连接:1.2.1 先创建2张测试表并插入数据:SQL?select?*?from?dave; ?ID??NAME?----------?---------- ?1??dave ?2??bl ?1??bl ?2??dave ???SQL?select?*?from?bl; ?ID??NAME?----------?---------- ?1??dave ?2??bl?1.2.3 用内链接进行查询:SQL?Select?a.id,a.name,b.name?from?dave?a?inner?join?bl?b?on?a.id=b.id;???--?标准写法?ID?NAME???????NAME?----------?----------?---------- ?1?dave???????dave ?2?bl?????????bl ?1?bl?????????dave ?2?dave???????bl ???SQL?Select?a.id,a.name,b.name?from?dave?a?join?bl?b?on?a.id=b.id;??--?这里省略了inner?关键字?ID?NAME???????NAME?----------?----------?---------- ?1?dave???????dave ?2?bl?????????bl ?1?bl?????????dave ?2?dave???????bl ???SQL?Select?a.id,a.name,b.name?from?dave?a,bl?b?where?a.id=b.id;??--?select?多表查询?ID?NAME???????NAME?----------?----------?---------- ?1?dave???????dave ?2?bl?????????bl ?1?bl?????????dave ?2?dave???????bl?从这三个SQL 的结果我们也可以看出,他们的作用是一样的。1.3 自然连接(Natural join)自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果。先看一下自然连接的例子:SQL?Select?id,name?from?dave?a?natural?join?bl?b; ?ID?NAME?----------?---------- ?1?dave ?2?bl?这里我们并没有指定连接的条件,实际上oracle为我们自作主张的将,dave表中的id和name字段与bl表中的id和name字段进行了连接。也就是实际上相当于SQL?Select?dave.id,bl.name?From?dave?join?bl?on?dave.id?=?bl.id?and?dave.name=bl.name; ?ID?NAME?----------?---------- ?1?dave ?2?bl?因此,我们也可以将自然连接理解为内连接的一种。有关自然连接的一些注意事项:(1).如果做自然连接的两个表的有多个字段都满足有相同名称和类型,那么他们会被作为自然连接的条件。(2).如果自然连接的两个表仅是字段名称相同,但数据类型不同,那么将会返回一个错误。二. 外连接(Outer Join)outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档