12:表的内外连接
1. 内连接
-
内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。
-
新的内连接的语法:
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;
//通过inner join将表通过条件连接起来,之后再通过where进行筛选,这样写逻辑更清晰。
select ename, dname from EMP, DEPT where EMP.deptno=DEPT.deptno and ename='SMITH';
select ename, dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno and ename='SMITH';
2. 左外连接:
-
如果联合查询,左侧的表完全显示我们就说是左外连接。
-
全保留左侧的表,连接后,如果右侧的表没有信息在对应的位置填充null。
select 字段名 from 表名1 left join 表名2 on 连接条件;
// 格式和内连接类似,inner join换为left join
3. 右外连接:
-
全保留右侧的表,连接后,如果左侧的表没有信息在对应的位置填充null。
-
左外连接完全够用,需要用到右外连接,只需要替换一下两表的未知即可。
// 列出部门名称、部门的员工信息、以及没有员工的部门。
select dept.dname,emp.* from dept left join emp on dept.deptno=emp.deptno;