Oracle初级测试题三--限制数据和对数据排序
Oracle初级测试题三--限制数据和对数据排序
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
--练习一
--1.查询职位为SALESMAN的员工编号、职位、入职日期。
select empno,job,hiredate from emp
where job = 'SALESMAN';

--2.查询1985年12月31日之前入职的员工姓名及入职日期。
select ename,hiredate from emp
where hiredate < '31-12月-85';

--3.查询部门编号不在10部门的员工姓名、部门编号。
select ename,deptno from emp
where deptno not in 10;

--练习二
--1.查询入职日期在82年至85年的员工姓名,入职日期。
select ename,hiredate from emp
where hiredate between '01-1月-82' and '31-12月-85';--注写01月会报错。。。

--2.查询月薪在3000到5000的员工姓名,月薪。
select ename,sal from emp
where sal between 3000 and 5000;

--3.查询部门编号为10或者20的员工姓名,部门编号。
select ename,deptno
from emp
where deptno in(10,20);

--4.查询经理编号为7902, 7566, 7788的员工姓名,经理编号。
select ename,mgr
from emp
where mgr in(7902,7566,7788);

--练习三 --1.查询员工姓名以W开头的员工姓名。
select ename
from emp
where ename like 'W%';

--2.查询员工姓名倒数第2个字符为T的员工姓名。
select ename
from emp
where ename like '%T_';

--3.查询奖金为空的员工姓名,奖金。
select ename,comm
from emp
where comm is null;

--练习四 --1.查询工资超过2000并且职位是MANAGER,或者职位是SALESMAN的员工姓名、职位、工资
select ename,job,sal
from emp
where sal > 2000 and job = 'MANAGER' or job = 'SALESMAN';

--2.查询工资超过2000并且职位是 MANAGER或SALESMAN的员工姓名、职位、工资。
select ename,job,sal
from emp
where sal > 2000 and job in('MANAGER','SALESMAN');

--3.查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。
select ename,deptno,sal
from emp
where deptno in(10,20) and sal between 3000 and 5000;

--4.查询入职日期在81年,并且职位不是SALES开头的员工姓名、入职日期、职位。
select ename,hiredate,job
from emp
where hiredate between '01-1月-81' and '31-12月-81' and job not like 'SALES%';

--5.查询职位为SALESMAN或MANAGER,部门编号为10或者20,姓名包含A的员工姓名、职位、部门编号。
select ename,job,deptno
from emp
where job in('SALESMAN','MANAGER') and deptno in(10,20) and ename like '%A%';

--练习五
--1.查询部门在20或30的员工姓名,部门编号,并按照工资升序排序。
备注:此处的工资只是作对比并不是未审题
select ename,deptno,sal
from emp
where deptno in(20,30) order by sal asc;

--2.查询工资在2000-3000之间,部门不在10号的员工姓名,部门编号,工资,并按照部门升序,工资降序排序。
select ename,deptno,sal
from emp
where sal between 2000 and 3000 and deptno not in 10 order by deptno asc,sal desc;

--3.查询入职日期在82年至83年之间,职位以SALES或者MAN开头的员工姓名,入职日期,职位,并按照入职日期降序排序。
select ename,hiredate,job
from emp
where hiredate between '01-1月-82' and '31-12月-83' and
(job like 'SALES%' or job like 'MAN%')
order by hiredate desc;

--课后作业
--1.查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。
select ename,hiredate,job
from emp
where hiredate > '09-7月-82' and job not in 'SALESMAN';

--2.查询员工姓名的第三个字母是a的员工姓名。
select ename
from emp
where ename like '__A%';

--3.查询除了10、20号部门以外的员工姓名、部门编号。
select ename,deptno
from emp
where deptno not in(10,20);

--4.查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。
select *
from emp
where deptno in 30
order by sal desc,
ename asc;

--5.查询没有上级的员工(经理号为空)的员工姓名。
select ename
from emp
where mgr is null;

--6.查询工资大于等于4500并且部门为10或者20的员工的姓名\工资、部门编号。
select ename,sal,deptno
from emp
where sal >= 4500 and deptno in(10,20);

分割线
相关信息
以上就是我关于 Oracle初级测试题三--限制数据和对数据排序 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。