Oracle 多表查询
要求:
用 scott 登录, 完成如下查询练习。
多表查询:
–1 显示所有雇员名、 雇员工资及所在部门名
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;
–2 显示部门代码为 20 的部门名, 以及该部门的所有雇员名、 雇员工资及岗位
select e.ename,e.sal,e.job,d.dname from emp e,dept d where d.deptno=20 and e.deptno=d.deptno;
–3 显示所有雇员名、 雇员工资及工资级别
select e.ename,e.sal,s.grade
from emp e,salgrade s
where e.sal between losal and hisal;
–4 显示雇员"SCOTT"的管理者名
select ename from emp where empno = (select mgr from emp where ename = 'SCOTT');
–5 显示获得补助的所有雇员名、 补助额以及所在部门名
select e.ename,e.comm,d.dname
from emp e,dept d
where e.comm is not null and e.deptno=d.deptno;
–6 查询 EMP 表和 SALGRADE 表, 显示部门代码为 20 的雇员名、 工资及其工资级别
select e.sal,s.grade
from emp e,salgrade s
where e.deptno = 20 and e.sal between losal and hisal;
–7 显示"BLAKE"同部门的所有雇员, 但不显示"BLAKE"
select * from emp where deptno = (select deptno from emp where ename = 'BLAKE') and ename <> 'BLAKE';
–8 按以下格式显示下面的信息, 条件是工资大于 1500 的。
部门 姓名 工资
select d.dname 部门,e.ename 姓名,e.sal 工资
from emp e,dept d
where e.sal>1500 and e.deptno=d.deptno;
–9 按以下格式显示下面信息,条件是此人工资在所有人中最高。
部门 姓名 工资
select d.dname 部门,e.ename 姓名,e.sal 工资
from emp e,dept d
where e.sal in (select max(sal) from emp) and e.deptno=d.deptno;
–10 按以下格式显示下面信息
某人 为 某人 工作
select xiaji.ename as 某人为,shangji.ename as 某人,xiaji.job as 工作
from emp shangji,emp xiaji
where shangji.empno=xiaji.mgr;