oracle 查询语句练习

本文深入探讨了SQL语言的高级应用,包括子查询、联接操作、聚合函数等,通过实例解析如何高效检索和分析数据库中的复杂信息,适用于希望提升数据库操作技能的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 列出至少有一个员工的部门
  2. select dname  from dept  where deptno in(select emp.deptno from emp,dept where emp.deptno=dept.deptno group by emp.deptno having count(*)>1);
  3. 列出薪资比李四大的所有员工

select * from emp where salary>(select salary from emp where ename='李四');

  1. 列出所有员工的姓名及其直接上级的姓名。(多次对自己查询,为表的取个别名,内部查询可以像对象一样引用外部的对象的字 段,这里引用与编程中的作用域相似,即与{}类比)

select a.ename,(select b.ename from emp b where b.empno=a.mgr)from emp a;

select e.ename,m.ename as boss_name from emp e left join emp m on  e.mgr=m.empno;

  1. 列出受雇日期早于其直接上级的所有员工。

select a.ename from emp a where a.hiredate  (select b.hiredate from emp b where b.empno=a.mgr);

  1. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。列出所有“CLERK”(办事员)的姓名及其部门名称。
  2. 列出最低薪金大于1500的各种工作。
    select  distinct job from emp where salary>1500;

Distinct 的作用是去除重复行;

  1. 列出在部门“后台开发”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
    select ename from emp where job='后台开发';
  2. 列出薪金高于公司平均薪金的所有员工。
    select ename from emp where salary >(select avg(salary) from emp);
  3. 列出与“张三”从事相同工作的所有员工。
    select ename from emp where job=(select job from emp where ename='张三');
  4. 列出薪金等于部门1中员工张三的薪金的所有员工的姓名和薪金。
    select e.ename,e.salary from emp e  where e.salary=(select m.salary from emp m where m.ename='张三') and e.ename<>'张三';
  5. 列出薪金高于在部门1工作的所有员工的薪金的员工姓名和薪金。
    select ename,salary from emp where salary> (select sum(salary)  from emp where deptno=1  );
  6. 列出在每个部门工作的员工数量、平均工资和平均服务期限。
    select count(*),avg(salary), avg(sysdate-emp.hiredate) from emp group by deptno;
  7. 列出所有员工的姓名、部门名称和工资。
    select  e.ename,d.dname,e.salary from emp e,dept d where e.deptno=d.deptno;
  8. 列出所有部门的详细信息和部门人数。
    select count(*) ,d.deptno,d.dname,d.loc  from emp e, dept d where e.deptno=d.deptno group by d.dname,d.deptno,d.loc ;
  9. 列出各种工作的最低工资。
    select min(salary) ,job from emp group by job;
  10. 列出各个部门的MANAGER(经理)的最低薪金。
     
  11. 列出所有员工的年工资,按年薪从低到高排序。

 

Select ename,nal2(comm,comm+salary,salary)*12 from emp order by asc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值