标签:
1. -- 等值连接 用等号去连接2个表,但是一定要注意连接的2个表一定要有关系
-- 查询员工信息和员工的工资级别
select e.empno,e.sal,s.grade,s.losal,s.hisal
from emp e,salgrade s
where e.sal between s.losal and s.hisal;
2. -- 不等值连接 -- 外连接
统计每一个部门的人数 显示部门号 部门名称 部门人数
select e.deptno,d.dname,count(*)
from emp e,dept d
where e.deptno = d.deptno
group by e.deptno,d.dname;
3. 外连接:分类左外连接和右外连接
左外连接: where e.deptno = d.deptno 不成立的时候,无论右边是否有数据与之对应,左边的都要显示
where e.deptno = d.depton(+)
右外连接: where e.deptno = d.deptno 不成立的时候,无论左边表是否有数据与之对应,右边表都会显示
where e.deptno(+) = d.deptno;
--select d.deptno,d.dname,count(e.empno)
from emp e,dept d
where e.deptno(+) = d.deptno
group by d.deptno,d.dname;
左外连接以左边表为主表,主表会显示所有,另一个表如果没有显示空,右外连接以右边表为主表.....
4. -- 内连接
select e.ename 领导名字,e.empno 领导ID,p.ename 员工名字,p.empno 员工ID
from emp e,emp p
where e.empno = p.mgr;
-- 内连接只能做数据量小的表,对于大表层次查询
5. -- 层次查询
select e.ename 领导名字,e.empno 领导ID
from emp e
connect by prior empno = mgr --prior 另一条语句
start with mgr is null;
标签:
原文地址:http://www.cnblogs.com/savepoint/p/5338427.html