oracle数据库的关于分页查询的sql语句练习

oracle数据库的关于分页查询的sql语句练习

  1. 查询工资最高的3名员工信息

select *
from (select * from employees
order by salary desc
)
where rownum<=3;

  1. 查询工资排名第5到第10的员工信息

select * from
(select e.*,rownum r
from employees e
order by salary desc
)
where r between 5 and 10;

  1. 查询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 ;

​ 子查询练习

  1. 显示工资比’Allan’(first_name)高的所有员工的姓名和工资

select *
from employees
where salary > (select salary from employees where first_name = ‘Allan’);

  1. 显示与’Allan’(first_name)从事相同工作的员工的详细信息

select *
from employees
where job_id = (select job_id from employees where first_name = ‘Allan’);

  1. 显示与30号部门first_name为’Guy’员工工资相同的员工姓名和工资

select *
from employees
where department_id=30 and
salary=(select salary from employees where first_name=‘Guy’);

  1. 查询所有工资高于平均工资(平均工资包括所有员工)的销售人员(‘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

  1. 显示所有职员的姓名及其所在部门的名称和工资

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

  1. 查询在研发部(‘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;

  1. 查询各个部门的名称和员工人数
    select d.department_name,count(*)
    from employees e inner join departments d
    on e.department_id=d.department_id
    group by d.department_name

  2. 查询员工的基本信息,附加其上级的姓名
    select e.*, e2.first_name
    from employees e, employees e2 where e.manager_id = e2.employee_id;

猜你喜欢

转载自blog.csdn.net/JiangLi_/article/details/90645234