/*
1、基础查询操作案例解析
2、分页查询
分页查询就是一次查询部分指定范围的数据;
分页查询的实现方式:
2.1 使用rownum伪列进行分页查询
rownum伪列是一个Oracle数据提供的虚拟列值,用于标识查询结果集中的每条记录的序号;
rownum伪列只能从1开始,不能从其他值开始;
2.2 使用集合操作(减集操作)
2.3 mysql使用limit关键字进行分页操作,但是Oracle数据不支持limit关键字;
– 分页:查询1-10条记录
select * from core_user where 1=1 limit 0,10;(后面这个10代表的容量,从1开始查10个)
– 分页:查询11-20条记录
select * from core_user where 1=1 limit 10,10;(后面这个10代表的容量,从11开始查10个)
–上面代码需要在mysql下执行。
*/
select * from employees;
select e.*,d.department_name from employees e,departments d
where e.department_id = d.department_id order by e.employee_id;
---- 查询一下部门60中的比员工编号为200的员工的工资高的员工信息
– 查询员工编号为200的员工的工资
select salary from employees where employee_id = 200;
– 部门60中的员工信息
select * from employees where department_id = 60;
— 综合查询
select * from employees where department_id = 60 and salary > (
select nvl(salary,0) from employees where employee_id = 200
);
—显示部门编号大于60的各个部门的最高工资、最低工资、平均工资及部门名,且要求平均工资不能低于5000;
select * from employees;
select * from departments;
— 各个部门的最高工资、最低工资、平均工资查询那结果中显示部门名(需要部门表和员工表进行等值连接)
select d.department_name,min(nvl(e.salary,0)) minSalary,max(nvl(e.salary,0)) as maxSalary,avg(nvl(e.salary,0)) avgSalary
from departments d,employees e where d.department_id=e.department_id group by d.department_name
—显示部门编号大于60的各个部门的最高工资、最低工资、平均工资及部门名
select d.department_name,min(nvl(e.salary,0)) minSalary,max(nvl(e.salary,0)) as maxSalary,avg(nvl(e.salary,0)) avgSalary
from departments d,employees e where d.department_id=e.department_id and e.department_id>60 group by d.department_name
—综合查询
select d.department_name,min(nvl(e.salary,0)) minSalary,max(nvl(e.salary,0)) as maxSalary,avg(nvl(e.salary,0)) avgSalary
from departments d,employees e where d.department_id=e.department_id and e.department_id>60 group by d.department_name
having avg(nvl(e.salary,0)) >=5000;
-------------------------分页查询-----------------------------------------------------
select rownum,e.* from employees e;
— 使用rownum进行分页查询第一页(1-10条记录)
select rownum rr,e.* from employees e where rownum <11;
— 使用rownum进行分页查询第二页(11-20条记录)
select rownum rr,e.* from employees e where rownum <20 and rownum >10;
— 使用子查询固化rownum伪列,然后在进行查询
select * from (
select rownum rr,e.* from employees e where rownum <=20) tt
where tt.rr > 10;
— 使用集合操作(减集)进行分页操作
select rownum rr,e.* from employees e where rownum <=20
minus
select rownum rr,e.* from employees e where rownum <=10
来源:https://blog.csdn.net/ssy052085156/article/details/100120489