网站首页 > 基础教程 正文
前面小节介绍了如何查询数据,并且介绍了如何使用 WHERE 条件对查询的数据结果集进行筛选,本小节介绍如何使用 ORDER BY 对查询结果集进行排序,排序在实际业务中非常有必要,可以较好地对结果集数据分析和处理。
1.ASC 从小到大排序
ASC 是对结果集按照字段从小到大排序(升序),以 teacher 表为例,将查询出来的所有结果集按照年龄 age 从小到大排序:
SELECT * FROM teacher ORDER BY age ASC;
执行结果如下图:
2.DESC 从大到小排序
DESC 是对结果集按照字段从大到小排序(降序),以 teacher 表为例,将查询出来的所有结果集按照年龄 id 从大到小排序:
SELECT * FROM teacher ORDER BY id DESC;
执行结果如下图:
3.使用多字段混合排序
以 teacher 表为例,将查询出来的结果集按照 age 从大到小排序之后,再按照 id 字段从小到大排序:
SELECT * FROM teacher ORDER BY age DESC,id ASC;
执行结果如下图:
4.对字符串类型字段排序
前面排序的 age 和 id 字段是 int 类型,为了演示方便这里先插入几个 name 字段为英文名的教师测试数据,并对 name 字段排序,插入数据 SQL 语句如下:
INSERT INTO teacher
(name,age,id_number,email)
VALUES
('Tom',22,'42011720200604077X','tom@qq.com'),
('Jack',23,'42011720200604099X','jack@qq.com'),
('Mary',24,'42011720200604020X','mary@qq.com'),
('Timo',25,'42011720200604022X','timo@qq.com'),
('Faker',21,'42011720200604033X','faker@qq.com');
对查询结果集按照 name 字段 ASC 升序排序:
SELECT * FROM teacher ORDER BY name ASC;
执行结果如下图:
Tips:如上图所示,使用 ASC 对结果集按照 name 字段升序,其实是对 name 字段字符串编码的排序,英文字符排序在前,中文在后,其中排序规则是按照字符 ASCII码 对应值的大小排序的。
5.小结
本小节介绍了如何使用 ORDER BY 对查询结果集按照值字段排序,其中包括 ASC 升序和 DESC 降序,需要注意的是各种数据的字符集可能不同,如中文字符编码 GBK编码、utf-8编码, 若需要经常对字符串类型字段进行排序,可以给该字符串字段加上普通 Bree索引,二级索引树字符串默认存储方式是按照字符集升序存储的(MySQL8.0 可自定义排序存储方式),所以有索引的字段排序性能比没有索引的字段排序性能好。
猜你喜欢
- 2025-05-10 「工具」三步搞定数据库MySQL卸载
- 2025-05-10 Mysql数据库入门到精通(mysql从入门到精通pdf)
- 2025-05-10 【深入浅出MySQL】「底层原理」InnoDB原理带你从入门到精通
- 2025-05-10 PHP MySQLi基础教程 MySQL 创建数据库
- 2025-05-10 在Windows环境下MySQL命令行备份还原数据库图文教程
- 2025-05-10 PHP和MySQL命令行初级教程(php mysqli)
- 2025-05-10 新手教程系列之《Mysql5.5 Windows10安装》
- 2025-05-10 面试官:MySQL索引底层数据结构原理与性能调优,你能回答多少?
- 2025-05-10 「Qt入门第22篇」 数据库(二)编译MySQL数据库驱动
- 2025-05-10 20《MySQL 教程》UNION 联合查询(mysql联合查询效率)
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)