1.多表查询的基础笛卡尔集
多张表查询产生的表的列数等于所有表的列数之和,行数等于多张表之积
2.多表查询分等值连接,不等值连接,外连接,自连接
等值连接
select e.empno,e.ename from emp e,dept d where e .deptno=d.deptno
不等值连接
select e.empno,e.ename e.sal from emp e,dept d where e.sal between s.hisal and s.losal
其中BETWEEN --AND--之间必须是前小后大
外连接
外连接的本质是通过外连接,把对于连接条件不成立的记录,仍然包含在最后的结果集中,分为左外连接和右外连接
自连接
自连接核心是通过别名,将同一张表视为多张表
3.层次查询
因为自连接是把一张表视为多张表,会产生笛卡尔集,至少会产生n倍的数据,不适合操作大数据,其本质是多表连接。
层次查询的本质是单表查询,
from emp
connect by prior empno=mgr
start with empno=121(
connect by子节点=父节点)
prior靠近子节点,就往子节点方向遍历,靠近父节点,就往父节点方向遍历