oracle数据库的关于分页查询的sql语句练习
- 查询工资最高的3名员工信息
select *
from (select * from employees
order by salary desc
)
where rownum<=3;
- 查询工资排名第5到第10的员工信息
select * from
(select e.*,rownum r
from employees e
order by salary desc
)
where r between 5 and 10;
- 查询first_name是以大写D开头的第3到第5个员工信息
select * from
(select e.*,rownum r
from employees e
where first_name like ‘D%’
)
where r between 3 and 5 ;
子查询练习
- 显示工资比’Allan’(first_name)高的所有员工的姓名和工资
select *
from employees
where salary > (select salary from employees where first_name = ‘Allan’);
- 显示与’Allan’(first_name)从事相同工作的员工的详细信息
select *
from employees
where job_id = (select job_id from employees where first_name = ‘Allan’);
- 显示与30号部门first_name为’Guy’员工工资相同的员工姓名和工资
select *
from employees
where department_id=30 and
salary=(select salary from employees where first_name=‘Guy’);
- 查询所有工资高于平均工资(平均工资包括所有员工)的销售人员(‘SA_REP’)(job_id)
select *
from employees
where job_id=‘SA_REP’ and
salary > (select avg(salary) from employees) ;
表连接查询练习
//查询员工信息 employees
//查询部门信息 departments
//查询位置信息 locations
select * from employees
select * from departments
select * from locations manger
- 显示所有职员的姓名及其所在部门的名称和工资
select e.first_name,salary,d.department_name r
from employees e inner join departments d state province
on e.department_id =d.department_id
- 查询在研发部(‘IT’)工作员工的编号,姓名,工作部门,工作所在地
select e.first_name,e.manager_id,department_name r,l.street_address a
from employees e inner join departments d
on e.department_id=d.department_id and d.department_name=‘IT’
inner join locations l
on d.location_id = l.location_id;
-
查询各个部门的名称和员工人数
select d.department_name,count(*)
from employees e inner join departments d
on e.department_id=d.department_id
group by d.department_name -
查询员工的基本信息,附加其上级的姓名
select e.*, e2.first_name
from employees e, employees e2 where e.manager_id = e2.employee_id;