内连接inner join/join
也叫自连接,这是我们经常用到的查询方式,内连接查询只能查询出匹配的记录,匹配不上的记录时无法查询出来的 ,以下三种查询结果一样
select * from student s, color c where s.stuname = c.stuname;
select * from student s inner join color c on s.stuname = c.stuname;
select * from student s join color c on s.stuname = c.stuname;
外连接outer join
可进一步分为左外连接left outer join和右外连接right outer join,(简称左连接left join,右连接 right join)。
左外连接
左连接就是以左边的表(left join 左边的表)为主表,即使有些记录关联不上,主表的信息也能全部查询出来,也就是左边的表数据全部展示,右边表的数据复合条件的展示,不符合条件的以空值代替,适合那种需要求出维度(比如求出所有人员)的需求:
select * from student s left join color c on s.stuname = c.stuname;
等同于select * from student s left outer join color c on s.stuname = c.stuname;
右外连接
如果有需求要求在结果中展现所有的颜色信息,就可以用右连接:
还有另一种写法,可以达到相同的外连接效果:比如左外连接等同于以下的语句:
select * from student s ,color c where s.stuname = c.stuname(+);
同样右连接是这样的:
select * from student s ,color c where s.stuname(+) = c.stuname;
在(+)计算时,哪个带(+)哪个需要条件符合的,另一个全部的。即放左即右连接,放右即左连接。
全连接full join/full outer join
语法是语法为full jo