Oracle day1+2

--1.查询30号部门中的所有员工信息:
select * from emp where deptno = 30;

--2.列出所有办事员‘CLERK’的姓名、员工编号和部门编号:
select ename,empno,deptno from emp where job = 'CLERK';

--3.找出提成高于工资的员工:
select * from emp where comm > sal;

--4.显示姓名中不带有‘R’的员工信息:
select * from emp where ename not like '%R%';

--5.请查询表DEPT中所有部门的情况:
select * from dept;

--6.查询表DEPT中的部门号、部门名称两个字段的信息:
select deptno,dname from dept;

--7.请从表EMP中查询10号部门工作的雇员姓名和工资:
select ename,sal from emp where deptno = 10;

--8.查询编号为7566的雇员姓名及其所在部门编号:
select ename,deptno from emp where empno = 7566;

--9.查询表EMP中所有的工资大于等于2000的雇员姓名:
select ename from emp where sal >= 2000;

--10.查询emp表中所有员工的信息,要求查询结果列名用中文显示:

select empno 员工编号,ename 姓名,job 工作,mgr 上级编号,
hiredate 入职日期, sal 工资, comm 奖金, deptno 部门编号 from emp;
--11.查询工作是CLERK的员工信息:
select * from emp where job = 'CLERK';

--12.查询10号部门中所有经理,20号部门中所有办事员以及既不是经理又不是办事员但其薪金大于或等于2000的所有雇员的详细资料:
select  * from emp where (deptno = 10 and job = 'MANAGER') or 
(deptno = 20 and job = 'CLERK') or (deptno = 20 and job  not in ('CLERK','MANAGER') and sal >= 2000) ;

--13.查询佣金大于100的员工信息(注佣金字段为COMM):
select * from emp where comm > 100;

--14.查询10号和20号部门的员工信息:
select * from emp where deptno in (10,20);

--15.查询10号部门和20号部门中的所有经理信息:
select * from emp where deptno in (10,20) and job = 'MANAGER';

--16.查询10号部门中所有经理‘MANAGER’和20号部门中所有办事员‘CLERK’的全部信息:
select * from emp where (deptno = 10 and job = 'MANAGER') or (deptno = 20 and job ='CLERK');

--17.查询除10号部门以外的员工信息:
select * from emp where deptno != 10;

--18.找出不收取佣金的员工:
select * from emp where comm = 0 or comm is null;

--19.显示名字以‘A’开头的员工:
select * from emp where ename like 'A%';

--20.查询收入(工资加佣金)高于3000的员工:
--select * from emp where sal > 3000 or comm > 3000 or (sal+comm) > 3000;
select * from emp where (sal+nvl(comm,0)) > 3000;


--21.查询员工编号以77开头的员工:
select * from emp where empno like '77%';

--22.查询员工编号第三位为9的员工:
select * from emp where empno like '__9%';

--23.查询20号部门和30号部门中的所有销售员‘SALESMAN’信息:
select * from emp where deptno in (20,30) and job = 'SALESMAN';

--24.查询收入高于1550的员工的员工编号,姓名,职位和入职日期:
select empno,ename,job,hiredate from emp where sal > 1550;

--25.查询dept表中工作地点‘loc’在NEW YORK的部门信息:
select * from dept where loc = 'NEW YORK';

--26.查询没有上司‘mgr’的员工:
select * from emp where mgr is null;

--27.查询发放奖金且工资大于佣金三倍的员工:
select * from emp where comm is not null and sal > comm*3;

--只选择那些平均薪水大于2000的部门
--对于每个选定的部门,计算其员工数量
--并计算这些员工的平均薪水(但只包括薪水小于4000的员工)
--将结果按照平均薪水的降序排序

select deptno,count(*),avg(sal) from emp
where sal < 4000
group by deptno having avg(s0al) > 2000
order by avg(sal) desc;

--1.请从表EMP中查找姓名以‘J’开头所有雇员的姓名、工资、职位:
select ename,sal,job from emp where ename like 'J%';

--2.请从表EMP中查找工种是职员‘CLERK’或经理‘MANAGER’的雇员姓名、工资:
select ename,sal from emp where job in ('CLERK','MANAGER');

--3.请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作:
select ename,deptno,sal,job from emp where deptno between 10 and 30;

--4.找出收取奖金的员工的不同工作:
select distinct job from emp where comm is not null;

--5.请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列:
select ename,job,sal from emp where sal < 2000 order by sal desc;

--6.列出各个部门的经理‘MANAGER’的最低薪水:
select deptno ,min(sal) from emp where job = 'MANAGER' group by deptno;

--7.找出不收取奖金或收取的奖金低于300的员工:
select * from emp where comm is null or comm < 300;

--8.列出各种工作的最低工资:
select job,min(sal) from emp group by job;

--9.找出佣金高于薪金60%的雇员:
select * from emp where comm > sal * 0.6;

--10.找出部门10中所有经理和部门20中的所有办事员的详细资料:
select * from emp where (deptno = 10 and job = 'MANAGER') or(deptno = 20 and job = 'CLERK');

--11.查询所有员工工资和奖金的和:
select ename 姓名,(sal+nvl(comm,0)) 收入 from emp;

--12.找出不收取佣金或收取的佣金低于100的雇员:
select * from emp where comm is null or comm < 100;

--13.列出最低薪水大于1500的各种工作:
select job,min(sal) from emp group by job having min(sal) > 1500;

--14.显示雇员姓名,根据其服务年限,将最老的雇员排在最前面:
select ename,hiredate from emp order by hiredate ;

--15.显示所有雇员的姓名、工作和薪金,按入职日期的降序顺序排序,而入职日期相同时按薪金升序:
select ename,job,sal from emp order by hiredate desc,sal asc;

--16.显示在一个月为30天的情况下所有雇员的日薪金:
select ename,sal/30 from emp;

--17.查询至少有4个员工的部门信息:
select deptno,count(*) from emp group by deptno having count(*)>4;

--18.统计各部门的薪水总和:
select deptno,sum(sal) from emp group by deptno ;

--19.查询奖金高于工资的20%的员工信息:
select * from emp where comm > sal * 0.2;

--20.查询奖金‘COMM’高于工资‘SAL’的员工信息:
select * from emp where comm > sal;

--21.查询所有工种不是MANAGER和CLERK,且工资大于或等于2000的员工的详细信息:
select * from emp where job not in ('MANAGER','CLERK') and sal >= 2000;

--22.查询每个部门每个职位一年发多少工资:
select deptno,job,sum(sal)*12 from emp group by deptno,job ;

--23.查询工资在1500到3000之间的人数和平均工资:
select count(*),avg(sal) from emp where sal between 1500 and 3000;

--24.查询每个部门最高工资和最低工资的差额:
select deptno,max(sal)-min(sal) from emp group by deptno;

--25.查询各个部门的部门人数、部门的平均工资:
select deptno,count(*),avg(sal) from emp group by deptno;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值