ORACLE查询练习题

本文是一系列关于ORACLE查询的实例练习,涵盖了各种查询条件和操作,如查询特定职位员工工资,查找佣金为0或null的员工,按入职日期筛选,使用LIKE操作符,查询部门经理的工资,显示佣金高于工资的员工,使用子查询和连接操作等。此外,还涉及到统计分析,如查询部门平均工资,职位最低工资,员工排名等复杂查询技巧。

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

--01.查询员工表所有数据,并说明使用*的缺点
--会将所有数据显示,数据过于庞大,不直观
--01.查询职(job)为'PRESIDENT'的员工的工资 
 Select ename,job,sal from emp
				Where job=’PRESIDENT’;
        
--02.查询佣金为0或为null的员工的信息 
Select * from emp where comm=0 or comm is null;

--03.查询入职日期在1981-5-1到1981-12-31之间的所有员工的信息 
Select * from emp 
Where
hiredate >to_date(‘1981-5-1’,’yyyy-mm-dd’)
and
hiredate<=to_date(‘1981-12-31’,’yyyy-mm-dd’);

--04..查询所有名字长度为4的员工的员工的编号,姓名 
Select ename,empno from emp 
Where enaem like ‘____’;

--05.显示10号部门饿所有经理和20号部门的所有员工 
Select ename,job,deptno from emp
Where (deptno=10 and job=’MANAGER’ OR DEPTNO=20);

--06.显示姓名没有'L'字的员工的详细信息或含有'SM'字的员工信息 
Select ename from emp 
Where
 (ename not like ‘%L%’)
 Or
 (ename like %SM%);
 
--07.显示各个部门经理的工资 
Select * from emp where job=’MANAGER’;

--08.显示佣金收入比工资高的员工的详细信息 
Select * from emp where comm>sal;

--10.把hiredate列看做是员工的生日,求本月过生日的员工: 
Select ename,hiredate from emp 
Where extract(month from hriedate)=extract(month from sysdate)-1;

--11.把hiredate列看做是员工的生日,求下月过生日的员工 
Where extract(month from hriedate)=extract(month from sysdate)+1;

--12.求1982年入职的员工 
Select * from emp where extract(year from hiredate)=’1982’;

--13.求1981年下半年入职的员工 
Select * from emp where 
hiredate > to_date(‘1981-6-1’,’yyyy-mm-dd’)
and
hiredate<to_date(‘1981-12-31’,’yyyy-mm-dd’);

--14.求1981年各个月入职的员工个数 
select count(*),to_char(hiredate,’mm’) from emp
where to_char(hiredate,'yyyy')=1981 group by to_char(hiredate,'mm')
Select * from emp 


--PartII 
--01 .查询各个部门的平均工资 
SELECT deptno,ROUND(avg(sal),2) avg
FROM emp
GROUP BY deptno

--02.显示各种职位的最低工资
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值