-----------------------------------------------Oracle的sql1999对sql的支持---------------------------------------------
交叉连接CROSS JOIN(了解)
交叉连接会产生笛卡尔积
1. 自然连接NATURAL JOIN(了解)
自然连接会自动的分析管理条件进行连接,去掉笛卡尔积。
2. USING子句,直接管理操作(了解)
3. ON子句,自己编写连接条件(重要)
On相当于where
4. 左连接和右连接LEFT JOIN和RIGHT JOIN(重要)
代码示例:
select * from emp cross join dept; --交叉连接,会产生笛卡尔积 select * from emp, dept; select * from emp natural join dept; --自然连接不会产生笛卡尔积 select * from emp e,dept d where e.deptno=d.deptno; --相当于自然连接,除了位置不同 select * from emp join dept using(deptno) where dept.deptno=20; --直接管理操作 select * from emp e, dept d where e.deptno=d.deptno and d.deptno = 20; --直接管理操作相当于这条语句 select * from emp e join dept d on e.deptno = d.deptno and d.deptno = 20; --on相当于where --sql 1999 外链接查询为重点掌握知识 select * from dept d left join emp e on d.deptno = e.deptno; --sql 1999 外链接-左连接 select * from dept d ,emp e where d.deptno=e.deptno(+); select * from emp e right join dept d on e.deptno=d.deptno; --sql 1999 外链接-右连接 select * from emp e ,dept d where e.deptno(+) = d.deptno; select * from emp e left join emp e1 on e.mgr=e1.empno; --使用sql 1999 查询出所有员工的上级领导 select * from emp e, emp e1 where e.mgr = e1.empno(+); |