sql内链接,外连接

本文详细解析了Oracle SQL中内连接(等连接)与外连接(左外连接、右外连接)的概念及应用,通过示例展示了如何在两张表间进行连接操作,帮助读者掌握不同连接方式的使用场景。
  在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的情况的结果集是一样的。

SQL中,内链接(Inner Join)和外连接(Outer Join)是两种常用的数据表连接方式,其区别如下: 1.链接(Inner Join):内链接返回两个表中匹配的行,即只返回两个表中都存在的数据。如果其中一个表中没有匹配的数据,那么这个表中的数据将不会被返回。内链接使用`JOIN`关键字进行连接,或者使用`INNER JOIN`关键字表示内连接,如下所示: ```sql SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column; ``` 2. 外连接(Outer Join):外连接可以返回两个表中所有的行,即使其中一个表中没有匹配的数据,也会返回该表中的数据。外连接有左外连接、右外连接和全外连接三种类型。左外连接(Left Outer Join)返回左表中所有的行和右表中匹配的行,如果右表中没有匹配的数据,则返回`NULL`值。右外连接(Right Outer Join)与左外连接类似,只不过是返回右表中所有的行和左表中匹配的行。全外连接(Full Outer Join)返回两个表中所有的行,如果其中一个表中没有匹配的数据,则返回`NULL`值。外连接使用`LEFT JOIN`、`RIGHT JOIN`或者`FULL OUTER JOIN`关键字进行连接,如下所示: ```sql -- 左外连接 SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column; -- 右外连接 SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column; -- 全外连接 SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column = table2.column; ``` 总的来说,内连接返回两个表中匹配的数据,外连接返回两个表中所有的数据。在实际的应用中,需要根据数据的实际情况和需求来选择使用内连接还是外连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值