1、开启MySQL 进入控制台 输入mysql -uroot -proot进入MySQL数据库如图:


4、外连接(六种场景)1,left join 或者left outer join(等同于left join)这种场景下得到的是A的所有数据,和满足某一条件的B的数据;

6、3,right join 或者fight outer join(等同于right join)这种场景下得到的是B的所有数据,和满足某一条件的A的数据;

8、5,full join (mysql不支持,但是可以用 left join union right join代替)union过后,重复的记录会合并(id为2,3,4的三条记录)这种场景下得到的是满足某一条件的公共记录,和独有的记录

10、交叉连接 (cross join)实际应用中还有这样一种情形,想得到A,B记录的排列组合,即笛卡儿积,这个就不好用集合和元素来表示了。需要用到cross join:还可以为cross join指定条件 (where):注:这种情况下实际上实现了内连接的效果

11、总结:上面仍然存在遗漏,那就是mysql对sql语句的容错问题,即在sql语句不完全符合书写建议的情况,mysql会允许这种情况,尽可能地解释它:3.1 一般cross join后面加上where条件,但是用cross join+on也是被解释为cross join+where;3.2 一般内连接都需要加上on限定条件,如上面场景2.1;如果不加会被解释为交叉连接;3.3 如果连接表格使用的是逗号,会被解释为交叉连接;注:sql标准中还有union join和natural inner join,mysql不支持,而且本身也没有多大意义,其结果可以用上面的几种连接方式得到