图解数据库左连接、右连接、内连接、外连接、全连接

图解数据库左连接、右连接、内连接、外连接、全连接1.前言在日常的数据库增删改查任务中,由于数据的规范设计,数据通常不集中在同一张表里,所以经常会涉及到多表的数据查询,多表数据查询需要表之间的连接,而表间连接方式有很多,下面就针对各种表连接方式进行介绍。在介绍之前,为了方便对文字概念的深入理解,本文利用实例和图例进行概念的补充深化,为准确理解提

大家好,欢迎来到IT知识分享网。

1. 前言

在日常的数据库增删改查任务中,由于数据的规范设计,数据通常不集中在同一张表里,所以经常会涉及到多表的数据查询,多表数据查询需要表之间的连接,而表间连接方式有很多,下面就针对各种表连接方式进行介绍。在介绍之前,为了方便对文字概念的深入理解,本文利用实例和图例进行概念的补充深化,为准确理解提供支持。

1)数据库的常用连接方式:

内连接:inner join,最常见的一种连接方式

左连接:也叫左外连接(left [outer] join)

右连接:也叫右外连接(right [outer] join)

全连接:full [outer] join ,MySQL不能直接支持。

图解数据库左连接、右连接、内连接、外连接、全连接

 

 2)例子中的两个表的结构和数据

图解数据库左连接、右连接、内连接、外连接、全连接

 

 

  

2. 内连接

内连接,也叫等值连接, inner join得出同时存在t1表和t2表的数据集,通俗一点说就是求两个表的交集。

图解数据库左连接、右连接、内连接、外连接、全连接

SQL语句

-- join
select * from course c join teacher t ON c.t_id = t.t_id 

-- inner join
select * from course c inner join teacher t on c.t_id = t.t_id 

-- 逗号的连表方式就是内连接
select * from course c ,  teacher t where c.t_id = t.t_id 

“inner join”两边的表的位置可以互换,结果都一样

图解数据库左连接、右连接、内连接、外连接、全连接

3. 外连接

1) 左连接

左连接:left [outer] join,左连接从左表取出所有记录,与右表匹配。如果没有匹配,以null值代表右边表的列。outer 可以不写,默认情况下不写outer关键字。

图解数据库左连接、右连接、内连接、外连接、全连接

SQL语句

-- left join
select * from course c left join teacher t  on  c.t_id = t.t_id 

-- left outer join
select * from course c left outer join teacher t  on c.t_id = t.t_id 

“left join”两边的表的位置不可以互换,交换后结果可能不一样。需要考虑好哪个是主表,哪个是从表。写在前面的是主表

图解数据库左连接、右连接、内连接、外连接、全连接

2) 右连接

右连接:right [outer] join,右连接从右表取出所有记录,与左表匹配。如果没有匹配,以null值代表左边表的列。outer 可以不写,默认情况下不写outer关键字。

图解数据库左连接、右连接、内连接、外连接、全连接

SQL语句

-- right join
select * from course c right join teacher t on   c.t_id = t.t_id 

-- right outer join
select * from course c right outer join teacher t on   c.t_id = t.t_id 

图解数据库左连接、右连接、内连接、外连接、全连接

4. 全连接

两个表的并集,MySQL暂不支持这种语句,不过可以使用union将两个结果集“堆一起”,利用左连接,右连接分两次将数据取出,然后用union将数据合并去重。

 

图解数据库左连接、右连接、内连接、外连接、全连接

SQL语句

-- oracle的全连接
select * from a full join b on a.id = b.id

-- mysql的全连接
-- mysql中没有full join,mysql可以使用union实现全连接;
select * from a left join b on a.id = b.id
union
select * from a right join b on a.id = b.id

图解数据库左连接、右连接、内连接、外连接、全连接

5. 总结

最后,通过一张图来汇总常用的连接方式:

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27700.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信