SQL的内连接与外连接

来源:互联网 发布:vincizhang淘宝上有吗 编辑:程序博客网 时间:2024/05/16 14:31

转载自http://blog.csdn.net/hellowheat/article/details/4207467

SQL的内连接与外连接

标签: sqljoinoraclec
21640人阅读 评论(14)收藏举报
本文章已收录于:
分类:
作者同类文章X

         在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又包括等值连接,非等值连接,自连接;而外连接又分为左连接和右连接。其中默认的是内连接的等值连接。

         为了方便我们创建两张最简易的表A、B,具体的表结构参看下面,来分析内连接与外连接的区别

    图1,表A         图2 表B

                          图1                                                                      图2

     

    两个表要做连接,必须要有连接字段,而在表A和表B中连接字段是Aid和Bnamid,下图说明了连接之间关系图3

    图3

                                                                      图3

        (1) 内连接:利用内连接(等值)就可获取蓝色的公共部分C,即图3中的数据集C,结果集为如下:

       

                 图4

                                                                       图4

     

       其实select * from A join B on A.Aid=B.Bnamid;等价于select * from A,B where A.Aid=B.Bnamid;
           注:非等值连接主要的话是针对一个范围来查询数据,自连接主要就是把1张表堪称两张表来用                       
       (2)外连接:分为左外连接(left join)与右外连接(right join)
         
          左外连接即公共显示的蓝色部分C1+显示黄色的记录集A1,显示语句等价于select * from A,B where A.Aid=B.Bnamid(+);       

     

                图5

                                                                        图  5

     

    右外连接即公共显示的蓝色部分C1+显示绿色的B1,显示语句等价于select * from A,B where A.Aid(+)=B.Bnamid;

              图6 

                                                                          图6

     

      表A和表B情况是相对的,以上实验都是A在左边的情况,其实A left join B与B right join A的情况的结果集是一样的。

    0
    0
     
     

    我的同类文章

    http://blog.csdn.net
    • 【转帖】 什么是ORM?2009-11-24
    • 内核参数意义2009-11-19
    • 启动监听报错TNS-12547: TNS:lost contact2009-06-22
    • 控制用户访问--用户和权限2009-05-27
    • Oracle数据库对象--视图2009-05-26
    • SQL学习总结(四)2009-05-22
    • PL/SQL客户端连接虚拟机(linux)下的oracle服务器配置2009-11-24
    • 本地普通用户用口令文件登陆数据库 ORA-09925 ORA-010312009-10-14
    • Oracle体系架构2009-06-01
    • 数据库对象--索引,序列,同义词2009-05-27
    • Oracle 的约束2009-05-26
    更多文章
    0 0
    原创粉丝点击