1.掌握排序的应用场景及order by 的使用
2.掌握分页的应用场景及limit的使用
准备表格:
create table employee(
id int not null auto_increment primary key,
name varchar(30) comment '姓名',
sex varchar(1) comment '性别',
salary int comment '薪资(元)'
);
insert into employee(name, sex, salary) values('张三', '男', 5500);
insert into employee(name, sex, salary) values('李洁', '女', 4500);
insert into employee(name, sex, salary) values('李小梅', '女', 4200);
insert into employee(name, sex, salary) values('欧阳辉', '男', 7500);
insert into employee(name, sex, salary) values('李芳', '女', 8500);
insert into employee(name, sex, salary) values('张江', '男', 6800);
insert into employee(name, sex, salary) values('李四', '男', 12000);
insert into employee(name, sex, salary) values('王五', '男', 3500);
insert into employee(name, sex, salary) values('马小龙', '男', 6000);
insert into employee(name, sex, salary) values('龙五', '男', 8000);
insert into employee(name, sex, salary) values('冯小芳', '女', 10000);
insert into employee(name, sex, salary) values('马小花', '女', 4000);
应用场景:
1.学生按照身高从高到低进行排序
2.双十一,某商城的商品交易量排行榜
3.博客中的文章按时间先后顺序显示
|---------------------------------------------------------------------------------------------------------------------
在SQL中,使用order by 对查询结果进行排序,可以按照一列【或】多列进行排序.
order by 语法:
select column_name1,column_name2
from table_name1,table_name2
order by column_name,column_name[ASC|DESC]
==说明==:
1.ASC表示按升序排序,DESC按照降序排序
2.默认情况下,对列按升序排列
查询薪资,默认升序排列
select * from employee order by salary;
等价于
select * from employee order by salary ASC;
按照薪资降序排列
select * from employee order by salary desc;
按照性别和薪资降序排列
说明:(多字段排序,先按照前面的字段排序)
select * from employee order by sex,salary ASC;
显示结果是,性别女的,按照薪资降序排序。然后男的,按照薪资降序排序。
============================================================================
LIMIT
我们的数据总是很多的,所以需要分页显示
LIMIT
在Select 语句中使用LIMIT子句来约束要返回的记录数,
通常使用LIMIT实现分页
limit语法:
select column_name1,column_name2
from table_name1,table_name2
LIMIT [offset] row_count
说明:
1.offset指定要返回的第一行的偏移量,第一行的偏移量是0,而不是1
2.row_count指定要返回的最大行数
举例:每页最多20行,第一页偏移量是0,第二页的偏移量是20,第三页偏移量是40
即:后面的最大行数一般不变
0,20 20,20 40,20
Limit分页公式: limit (page-1)*row_count,row_count
limit 只有一个参数时,就是显示多少行数据
select * from employee limit 3;
select * from employee limit 5;
假如我们要分页显示
select * from employee limit 0,5;
select * from employee limit 5,5;
select * from employee limit 10,5;