oracle练习5

  1. 自连接查询(显示某员工的上级信息)
    select * from emp where empno=(select mgr from emp where ename=’SMITH’);
    这里写图片描述
  2. 列出薪金比“SMITH”多的所有员工。(经典的自连接查询)
    select e.ename,e.sal from emp e where sal> (select sal from emp where ename=’SMITH’);
    这里写图片描述
  3. 列出所有员工的姓名及其直接上级的姓名。
    select e.ename as “员工姓名”,m.ename as “上级姓名” from emp e,emp m where e.mgr=m.empno(+);
    这里写图片描述

  4. 列出受雇日期早于其直接上级的所有员工。
    select e.ename as “员工姓名”,e.hiredate as “员工受雇日期”
    ,m.ename as “上级姓名”,m.hiredate as “上司受雇日期”
    from emp e,emp m where e.mgr=m.empno(+) and (e.hiredate-m.hiredate) <0;
    这里写图片描述

  5. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门(以emp表为主,左连接查询)
    select e.ename as “员工姓名”,d.dname “部门名称” from dept d left join emp e on d.deptno=e.deptno;
    这里写图片描述
  6. 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。(经典的两个表连接)
    select e.ename as “员工姓名”,d.dname as “部门名称” from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;
    这里写图片描述
  7. 查询员工编号,员工名,上级编号,上级名称
    select e.empno as “员工编号”,e.ename as “员工姓名”,m.empno as “上级编号”,m.ename as “上级姓名”
    from emp e,emp m where e.mgr=m.empno(+);
    这里写图片描述
  8. 查询员工编号,员工名,所在部门名,上级编号,上级名称
    select e.empno as “员工编号”,e.ename as “员工姓名”,d.dname as “部门名称” ,
    m.empno as “上级编号”,m.ename as “上级姓名”
    from emp e,emp m,dept d where e.mgr=m.empno(+) and e.deptno=d.deptno;
    这里写图片描述
  9. 列出所有雇员的姓名及其直接上级的姓名
    select e.ename as “员工姓名”,m.ename as “上级姓名” from emp e,emp m where e.mgr=m.empno(+);
    这里写图片描述
  10. 列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
    select e.ename as “员工姓名”,d.dname “部门名称” from dept d left join emp e on d.deptno=e.deptno;
    这里写图片描述
  11. 显示所有部门在”NEW YORK”(dept表 loc字段)的员工姓名
    select e.ename as “员工姓名”,d.loc as “部门位置”
    from emp e,dept d where e.deptno=d.deptno and d.loc=’NEW YORK’;
    这里写图片描述
  12. 显示员工”SMITH”的姓名,部门名称
    select e.ename as “员工姓名”,d.dname as “部门名称”
    from emp e,dept d where e.deptno=d.deptno and e.ename=’SMITH’;
    这里写图片描述
  13. 显示员工姓名,部门名称,工资,工资级别(salgrade表 grade字段),要求工资级别大于4级
    select e.ename as “员工姓名”,d.dname as “部门名称” ,e.sal as “工资”,s.grade as “工资等级”
    from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between losal and hisal
    and s.grade>4;
    这里写图片描述
  14. 显示员工”KING”和”FORD”管理的员工姓名及其经理姓名
    select t.mename as “员工姓名”,t.eename as “管理的员工姓名”,n.ename as “经理姓名”
    from
    (select m.ename as mename,e.ename as eename,m.deptno as mdeptno from emp m,emp e where
    m.empno=e.mgr and m.ename in(‘KING’,’FORD’)) t,emp n
    where t.mdeptno=n.deptno and n.job=’MANAGER’;
    这里写图片描述
  15. 显示员工名,参加工作时间,经理名,参加工作时间:参加工作时间比他的经理早
    select t.eename as “员工姓名”,t.ehiredate as “参加工作时间”,
    m.ename as “经理姓名”,m.hiredate as “参加工作时间” from
    (select e.ename as eename,e.hiredate as ehiredate,e.deptno as edeptno from emp e) t,emp m
    where t.edeptno=m.deptno and m.job=’MANAGER’ and (t.ehiredate-m.hiredate)<0;

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值