Oracle 查询语句练习

匿名 (未验证) 提交于 2019-12-02 23:43:01
  1. 查询10号部门员工的员工号以及其领导的员工号,并以别名“领导员工号”显示列名。

    select empno, mgr 领导员工号 from scott.emp where depno = 10; 
  2. 查询emp表中所有的员工信息,并要求按照部门号升序排序,相同部门按照工资降序排序。

    select * from scott.emp order by depno, sal desc; 
  3. 查询部门内部人数多于3人的部门号。

    select depno, count(*) from scott.emp group by depno having count(*) > 3; 
  4. 向emp表中插入一条数据,员工号1000,员工名:Zhangsan,工作日期是1985年2月3日。

    insert into scott.emp(empno,ename,hiredate) values(1000, 'Zhangsan', data'1985-2-3'); insert into scott.emp(empno, ename, hiredate) values (1001, 'Zhangsan', to_data('1985-2-3', 'yyyy-mm-dd')); 
  5. 修改Zhangsan的工资为20部门的最高工资。

    update scott.emp  set sal= ( 	select Max(sal)     from scott.emp 	where depno=20 ) wehre ename='Zhangsan'; 
  6. 删除员工名中包含一个“A”并且以“D”结尾的员工信息。

    delete from scott.emp where ename like '%A%D'; 
  7. 统计emp表中每个部门的平均工资和最高工资,并要求参与统计的部门的平均工资多于1000,少于3000。

    select avg(sal) 平均工资, max(sal) 最高工资 from scott.emp group by depno having avg(sal) between 1000 and 3000; 
  8. 查询与SMITH员工从事相同工作的所有员工信息。

    select * from scott.emp where job in ( 	select job from scott.emp where ename like 'SMITH' ) and ename not like 'SMITH'; 
  9. 查询工资高于30号部门中工作的所有员工的工资的员工姓名和工资。

    -- 查询30号部门中工作的所有员工的工资 select sal from scott.emp where deptno = 30; -- 查询高于30号部门的所有员工姓名和工资 select ename, sal from scott.emp where sal > ( 	select max(sal) from scott.emp where deptno = 30; ) -- 另一种写法 select ename, sal from scott.emp where sal > all(select sal from scott.emp where deptno = 30); 
  10. 查询各种工作的最低工资。

    select min(sal) 最低工资 from scott.emp group by job 
  11. 统计每个部门中各个工种的人数与平均工资。

    -- 查询一个部门的各个工种的人数于平均工资 select deptno 部门号, job 工种, count(*) 工种人数, avg(sal) 平均工资 from scott.emp group by deptno, job; 
  12. 查询10号部门员工以及领导的信息。

    select a.* 员工信息, b.* 领导信息  from scott.emp a join scott.emp b on a.mgr = b.eno where a.deptno = 20; 
  13. 查询从事同一种工作但不属于同一部门的员工信息。

    select a.eno, a.ename, a.job from scott.emp a where a.job in ( 	select distinct b.job     from scott.emp b     where a.job = b.job and a.deptno != b.deptno ); 
  14. 查询至少有一个员工的部门信息。

    select * from scott.dept where deptno in ( 	select deptno     from scott.emp     group by deptno     having count(*) > 0 ); 
  15. 查询所有工种为CLERK的员工的姓名及其部门名称.

    select a.ename, b.deptname from scott.emp a join scott.dept a on a.deptno = b.no where a.job = 'CLERK'; 
文章来源: https://blog.csdn.net/qq_36835560/article/details/92375644
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!