在第一天学习的过程中,查询的结果,是按照默认的顺序显示,也可以进行排序。
order by 排序
- asc 升序 (默认的排序方式,可以不用写)
desc 降序
默认的排序的方式是升序, 使用方式就是后面跟上对应的排序字段。 ```sql — 查询学生表,按照年龄进行排序 默认从小到大(升序)
SELECT * from student ORDER BY age;
![image.png](https://cdn.nlark.com/yuque/0/2021/png/87080/1631933010379-26ae3bc7-add4-4122-9c20-b0a02b3b7ea3.png#clientId=u6f4cc4b0-962b-4&from=paste&height=223&id=ub8b4c7a2&margin=%5Bobject%20Object%5D&name=image.png&originHeight=446&originWidth=604&originalType=binary&ratio=1&size=91285&status=done&style=none&taskId=ua611fcec-f332-4606-bfd3-f77c75a6f1d&width=302)<br />如果降序排序就是 跟上 desc;
```sql
-- 查询学生表,按照年龄进行排序 降序
SELECT * from student
ORDER BY age DESC;
成绩按照从大到小排序。
SELECT * from student
ORDER BY score DESC;
sex 不为空的学生按照 age 从小到大排序。
SELECT * FROM student
WHERE not sex is NULL -- 条件
ORDER BY age -- 排序
多个字段排序
排序的时候也可以根据多个字段进行排序
order by age, score
先age进行 从小到大的排序
- 如果两个age相等,再按照 score 进行从小到大的排序
查询学生表,按照学生的age排序,age相等,按照成绩(score) 排序
select * from student
order by age, score;
查询学生表,按照学生的score排序(升序),score相等,按照age 排序(降序)。
select * from student
order by score asc, age desc;
查询学生表,age,score都不为空,进行排序,score 从大到小排序。
select * from student
where not age is null and not score is null
order by score desc;
limit 控制显示的结果数量
limit 1
只显示1条结果。
按照age排序,只显示两条内容
select * from student
order by age
limit 2;
查询最大的年龄。
select age FROM student
order by age desc
limit 1;
查询最小的分数。(不包含Null)
select score from student
where not score is null
order by score
limit 1;
limit m,n 分页
limit 1,2
- 1 从第(1+1=2)2条数据开始显示
- 2 显示2条数据
select * from student
ORDER BY age
LIMIT 2,3
- 按照成绩score降序排序,显示 第5-10条数据。
- 5-10 总共6条
- 从第5条开始显示(4+1)
- 确定
limit 4,6
select * from student
order by score desc
limit 4,6;
distinct 去除重复数据
在查询的时候,去重
显示去重之后的成绩
select distinct(score) from student;
查找第二高分数;
select distinct(score) from student
order by score desc
limit 1,1;
查找倒数第一的分数(不包含Null);
select distinct(score) from student
where not score is null
order by score
limit 1;
备注: 去重的 时候每次只能添加1个字段。
select distinct(age) from student;
下面的语句会报错
select distinct(name),distinct(age) from student;