mysql查询排序
1.排序规则
根据select语句中的order by 列名进行排序。
ASC(ascend): 升序,默认可以不写
DESC(descend): 降序
ORDER BY 字句在SELECT语句的结尾
备注:数据库中默认按照先后添加顺序存储数据,在查询时,也按照添加顺序遍历显示结果.因此当我们需要一些特定的数据排列时就要使用到排序
2.单列排序
1 #练习: 按照score从高到低顺序对学生进行排序 2 SELECT stu_id ,score FROM score ORDER BY score DESC; 3 4 #练习: 按照score从低到高顺序对学生进行排序 5 SELECT stu_id ,score FROM score ORDER BY score ASC; 6 #升序的ASC可以省略 7 SELECT stu_id ,score FROM score ORDER BY score; 8 9 #也可以使用字段的别名进行排序 10 SELECT stu_id ,score fenshu FROM score ORDER BY fenshu;
备注:ORDER BY 的查询字段,不一定非得是上面SELECT的查询字段,即即使没有在SELECT语句中查询表中的相应字段,只要是在表中,就可以使用ORDER BY 语句进行排序
3.多列排序
#练习: 按照score从高到低顺序对学生进行排序,如果分数一样,按id升序排序 SELECT stu_id ,score FROM score ORDER BY score DESC,stu_id;
备注:在对多列进行排序时,首先排序的第一列必须有相同的列值,才会对第二列及另外的列进行排序,如果第一列的数据中所有的值都是唯一的.将不再对第二列及后面的列进行排序
4.分组后排序
4.1 分组和WHERE、HAVING、ORDER BY的关系
- 一旦用到的分组,返回的数据只能是分组的 依据字段(用来做标识) 和 使用聚集函数得到的字段,分组的目的就是为了聚集计算
- where是在分组之前进行数据过滤,也就是说where先进行排除,排除之后数据才会交给分组进行操作
- having是对分组进行过滤,也就是说having是用来剔除不符合我们需求的分组
- order by是放在WHERE、HAVING之后用来对输出数据进行排序操作,它排序的依据可以是查询出来的字段,也可以是没有查询出来的字段(分组情况下,要符合相应逻辑)
1 #查询女生平均分大于80的班级,按照平均成绩从小到大进行输出 2 SELECT class_id, AVG(score) AS female_avg_scoreFROM students 3 WHERE gender = 'F' 4 GROUP BY class_id HAVING AVG(score) >= 80 5 ORDER BY female_avg_score;
分类:
mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)