内连接与外连接总结

  1. 内连接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。
    首先说明内连接的一个重要性质:内连接查询结果与表的顺序无关
    (当然顺序可能会发生变化,但是对应关系绝对不会错乱!!!)
    1.1 交叉连接(cross join)

当然,他还有其他的名字,比如:笛卡尔积,交叉积,还有最奇怪的名字“没有连接”(no join)

select s.Sname,c.Cname
from student  s
    CROSS JOIN
    course c;

其中,CROSS JOIN可以省略,简写为

select s.Sname,c.Cname
from student  s , course c;

交叉连接会把第一张表的每个值与第二张表的每个值进行匹配,结果如下

在这里插入图片描述1.2相等连接
每个课程对应一位老师 Tno 是外键
我们想找到每个课程的老师是谁,只需要将course表中的Tno和Teacher中的主键进行比对,就会得到结果

select c.Cname,T.Tname
 from course c inner join Teacher t 
 on c.Tno=T.Tno

在这里插入图片描述1.3 不等连接

我们继续沿用1.2中的表结构,如果我们想找到每个老师不教授的课程,这时候我们可以使用不等连接(说白了就是=换成<>,其他没有什么区别)

select c.Cname,T.Tname
 from   Teacher t  inner join course c
 on c.Tno<>T.Tno

结果:
在这里插入图片描述
1.4 自然连接

继续沿用1.2的表结构
注意:自然连接只有在连接的列在两张表中的名称都相同时才会有用
其实,自然连接就是自动识别相同列的相等连接

SELECT course.Cname,Teacher.Tname
FROM teacher
    NATURAL JOIN
    course
ORDER BY course.Cname;

得到的结果和1.2中的结果完全一样(顺序可能不同) 在这里插入图片描述在这里插入图片描述

  1. 外连接

首先说明外连接不同于内连接的一个性质:外连接查询与表的顺序有关

2.1 左外连接 LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

select * from 
teacher left JOIN course 
on course.Tno=Teacher.Tno;

在这里插入图片描述在这里插入图片描述 说明:
left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。
左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。

2.2 右外连接 RIGHT JOIN 或 RIGHT OUTER JOIN
右外连接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

select * from 
 course right JOIN  teacher
on course.Tno=Teacher.Tno;

在这里插入图片描述
在这里插入图片描述
说明:
right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。
与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。

2.3 全连接(全外连接)full join 或 full outer join
MySQL目前不支持此种方式,可以用其他方式替代解决。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值