内连接
在之前的MySQL的复合查询时,我们能够通过给两个表做笛卡尔积查询和where子句限定条件来查询想查询的数据,不过MySQL还提供了内连接用来给两个表做笛卡尔积,对比之前的复合查询笛卡尔积来说语法更加简洁。
语法:select 字段 from 表1 inner join 表2 on 条件1 and 条件2;
实际上这个语句和之前的复合查询没什么不同,只是语法形式不同。
比如我要查询所有学生的学号,姓名以及班级名称,我们可以直接通过复合查询和where子句限定条件来查询。
也可以直接选择内连接进行查询。
而内连接这个语法的作用就是将连接和where子句的条件给分开了,算是给用户一种新的查询方法。
外连接
外连接分为左外连接和右外连接。
左外连接
语法:select 字段 from 表1 left join 表2 on 条件1 and 条件2;
左外连接指的是 left join 关键字左侧的表完全显示,即使右侧表的数据中没有左侧的表的数据。
比如这里创建两个表,stu 和 exam,stu中有两位学生在exam表中不存在,exam表中有一个学生在stu中不存在。
如果我们用内连接或者普通的复合查询来查询的话,有的数据是直接不显示的。
比如这里我们要查询参加了考试的学生的信息,然后使用内连接来查询。
发现有两个学生没有查询到 。使用复合查询也是一样的。
这就需要左外连接来查询了。
我们发现即使3号和4号学生没有参加考试,但是在左外连接,它们依旧查询到了。
右外连接
其实学习完左外连接就已经学完右外连接了,只需要把left改成right即可
语法:select 字段 from 表1 right join 表2 on 条件1 and 条件2;
总结
以上就是MySQL的三种连接方式,十分简单,相信大家很快就能掌握。