连接查询:又分为内连接查询、外连接查询。
内连接查询:只有满足条件的数据才会显示
例如:查询emp 和 dept 两张表,emp 表中有一条数据没有部门编号 deptno,经过where的条件 emp.deptno=dept.deptno 筛选之后,没有部门编号的数据就不会显示出来。
select * from emp inner join dept on emp.deptno=dept.deptno;
外连接查询:可控制不满足条件的数据是否显示
左外连接查询:可以让左表不满足条件的数据显示
select * from emp left outer join dept on emp.deptno=dept.deptno
右外连接查询:可以让右表不满足条件的数据显示
select * from emp right outer join dept on emp.deptno=dept.deptno
全外连接查询:可以让左右表不满足条件的数据显示
select * from emp full outer join dept on emp.deptno=dept.deptno
总结:
内连接查询的方式有两种:1、在from之后跟多张表,通过where子句去掉笛卡尔积
2、使用inner join 进行连接,在on后面去掉笛卡尔积
通用外连接查询的方式:
左连接查询:使用 left outer join 进行连接,在on后面去除笛卡尔积
右连接查询:使用 right outer join 进行连接,在on后面去除笛卡尔积
全连接查询:使用 full outer join 进行连接,在on后面去除笛卡尔积