欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql学习笔记2-内连接和外连接

程序员文章站 2022-05-01 15:33:37
...

本节以学生和课程表为例子,来实际操作一下内连接和外连接,本节参考Anthony_tester的博客,感谢分享。

内连接

内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现
- 首先创建学生表和课程表
Mysql学习笔记2-内连接和外连接

Mysql学习笔记2-内连接和外连接

Mysql学习笔记2-内连接和外连接

  • 内连接inner join查询
    Mysql学习笔记2-内连接和外连接

  • 在查询数据的时候,不同表有同名字段,这个时候需要加上表名才能区分,而表名太长,通常使用别名。其中on换成where,结果是一样的。
    Mysql学习笔记2-内连接和外连接

外连接

外连接有左右外连接之分。外连接(outer join),是以某张表为主,取出里面的所有记录,然后每条与另外一张表进行连接。不管能不能匹配上条件,最终都会保留,也就是说,能匹配,正确保留;不能匹配,其他表的字段都置空(NULL)。
外连接分两种情况,是以某张表为主,有主表。当以左表为主表,这个叫left join,左外连接,我们习惯简称左连接;当以右表为主表,这个叫right join,右外连接,同样,简称右连接。
  • 左连接

    如果主表的某字段为空的时候,匹配后,右表其他字段自动为NULL。例如左表的c_name为空,匹配后右表其他字段都默认为空。
    

    Mysql学习笔记2-内连接和外连接

  • 右连接
    下面显示3条结果是因为,当前右表为主,而且副表有name为null,和主表匹配不上,匹配不上所以不会显示该条记录。
    Mysql学习笔记2-内连接和外连接

    左右连接是可以互相转换的。并且我们可以看出,虽然左连接和右连接有主表区分,但是显示结果,左表的数据始终在左边,右表数据显示在右边。
    

    Mysql学习笔记2-内连接和外连接