DQL数据查询语言
一.多表查询
1.内连接---->自连接
2.外连接
在一般的业务情况下,我们大致将 Mysql多表连接 分为如下几种:
内连接:INNER JOIN – 可简写为 JOIN;
左外连接:LEFT OUTER JOIN – 可简写为 LEFT JOIN;
右外连接:RIGHT OUTER JOIN – 可简写为 RIGHT JOIN;
全连接:使用 UNION 完成;
交叉连接:CROSS JOIN – 也称为 笛卡儿乘积连接,大抵不使用;
应用场景:用于查询一个表中有,另一个表没有的记录
特点:1.外连接的查询结果为主表中的所有记录。
2.左外连接,left join左边是主表,右外连接,right join右边的是主表。
3.左外和右外交换两个表的顺序,可以实现同样的效果。
2.1左外连接
解释:查询出左边表的所有集,而右边的匹配到的则有值,没匹配到的则为null。
可以看到 左边的 t_mysql_boys表里面的id全部显示出来了,右边的女生只显示了匹配到的数据。
2.2右外连接
解释:于和左外连接相反,查出右边数据的所有集,左边的表匹配到的显示,没匹配到的就显示null。
同理,左边表里面的女生全部出来,匹配到的就会显示男生数据,没有的就是null。
2.3.全外连接
全连接是左右连接的并集,连接表包含被连接的表的所有记录,如果缺少记录,就会用null取代。
从上图可以看出我们用了union ,因为mysql不支持 full join,所以我们用 UNION来代替。
2.4交叉连