zoukankan      html  css  js  c++  java
  • Oracle操作5

    --显示每个部门的员工数量
    select count(ROWID) from emp group by deptno;
    --显示每种职位名及月薪
    select job,round(avg(sal+nvl(comm,0))) as "岗位平均月薪" from emp group by job;
    --显示每年入职的员工数量及年份
    select count(ROWID) as "员工数量",to_char(hiredate,'yyyy') as "入职年份" from emp group by to_char(hiredate,'yyyy');
    --显示部门平均月薪大于2000的部门编号及平均月薪
    select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;
    --显示每个部门的员工数量
    select count(ROWID) from emp group by deptno;
    --显示每种职位名及月薪
    select job,round(avg(sal+nvl(comm,0))) as "岗位平均月薪" from emp group by job;
    --显示每年入职的员工数量及年份
    select count(ROWID) as "员工数量",to_char(hiredate,'yyyy') as "入职年份" from emp group by to_char(hiredate,'yyyy');
    --显示部门平均月薪大于2000的部门编号及平均月薪
    select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;
    --查询出不是总裁(PRESIDENT)的职位名以及该职位的员工总月薪,
    select * from salgrade;
    --查询出员工姓名及其所在部门名称
    select emp.ename,dept.dname from emp inner join dept on emp.deptno=dept.deptno;
    --查询出月薪大于2000的员工姓名、月薪、受雇日期及其所在部门名称,输出结果按受雇日期排序
    select emp.ename,emp.sal,emp.hiredate,dept.dname from emp inner join dept on emp.deptno=dept.deptno where emp.sal>2000 order by emp.hiredate;
    --查询每个员工姓名、月薪及月薪等级
    select emp.ename,emp.sal,salgrade.grade from emp inner join salgrade on emp.sal between salgrade.losal and salagrade.hisal;
    --三表关联
    --4.查询出每个员工的姓名、职位、月薪、部门名称、部门位置、以及月薪的等级,结果按员工编号排序
    --三表关联思路:先将两表关联,再将关联结果与第三张表进行关联
    select e.ename,e.job,e.sal,d.dname,d.loc,s.grade from emp e inner join dept d on e.deptno = d.deptno inner join salgrade s on e.sal between s.losal and s.hisal
    --查询出所有的部门编号、部门名及该部门下的所有员工的姓名
    select d.deptno,d.dname,e.ename from dept d left outer join emp e on d.deptno = e.deptno;
    --查询出每个员工的编号、姓名、职位及它的领导的姓名及职位。 
    select e1.empno,e1.ename,e1.job,e2.ename,e2.job from emp e1 left outer join emp e2 on e1.mgr = e2.empno;
    --查询出每个员工的姓名、职位、月薪、所属部门名、月薪等级及其领 导的姓名、职位、所属部门名、月薪等级
    select e.ename, e.job, e.sal, d.dname, s.grade, m.ename, m.job,d1.dname, a.grade from emp e left outer join dept d on e.deptno=d.deptno
    left outer join salgrade s on e.sal between s.losal and s.hisal
    left outer join emp m on e.mgr=m.empno
    left outer join dept d1 on m.deptno=d1.deptno
    left outer join salgrade a on e.sal between a.losal and a.hisal;
    --内连接
    select * from emp e,dept d where e.deptno=d.deptno;
    --左外连接(emp为主表,dept为从表,从表加+)
    select * from emp e,dept d where e.deptno=d.deptno(+);
    --右外连接(emp为从表,dept为主表,从表加+)
    select * from emp e,dept d where e.deptno(+)=d.deptno;
    --注意:sql92没有全外连接,全外连接只能用sql99的语法查询
    --交叉连接(笛卡尔积)
    select * from emp e,dept d;
    --sql99与sql92优缺点对比
    --sql92优点:书写方便
    --sql92缺点:因为连接条件和过滤条件都写在where子句中,如果条件较多,顺序较乱,不易阅读
    --sql99优点:阅读简便
    --sql99缺点:不易书写
    
    --查询出员工姓名及其所在的部门名。 
    select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;
    --查询出所有的部门编号、部门名及该部门下的所有员工的姓名。 
    select e.deptno,dname,e.ename from emp e,dept d where e.deptno=d.deptno;
    --查询出每个员工的姓名、所属部门名称、月薪等级及其领导的姓名、所属部门名称
    select e.ename,d.dname,s.grade,m.ename,p.dname from emp e,dept d,salgrade s,emp m,dept p
    where e.deptno=d.deptno and e.sal between s.losal and s.hisal and e.mgr=m.empno and m.deptno=p.deptno;
  • 相关阅读:
    NIST SIEM IR RISK
    Django 部署时得到 Bad Request (400)(DEBUG = False)
    MongoDB入门-插入文档
    MongoDB入门-MongoDB的基本操作
    MongoDB入门-Windows操作系统中将Mongodb设置为系统服务
    MongoDB入门-Windows操作系统中Mongodb数据库的安装部署
    Nginx反向代理功能-实现动静分离
    Nginx反向代理功能-使用upstream指令反向代理多台web服务器案例
    Nginx反向代理功能-添加头部报文信息
    Nginx反向代理功能-缓存功能
  • 原文地址:https://www.cnblogs.com/qilin20/p/12434742.html
Copyright © 2011-2022 走看看