MySQL必知必会——第5章 排序检索数据

1 order by子句基本介绍
子句:SQL语句由子句构成,有些子句是必须的,有些子句是可选的。
例如:select语句的from子句
为了明确地排序用select语句检索出的数据,可使用order by子句
order by子句可以取一个或多个列的名字,据此对输出进行排序
可以通过非选择列进行排序
比如:一个学生表(student)包含学号(sID)、成绩(grade)两个属性
可以输入如下命令:select sID
from student
order by grade;
这句命令就是通过非选择列进行排序,就是按照学生成绩高低来输出学生的学号

2 按多个列排序
命令格式:select 列名 from 表名 order by 列名1,列名2
命令含义:先按照列名1进行排序,如果列名1相同,在按照列名2进行排序
比如:一个学生表(student)包含学号(sID)、成绩(grade)、学生姓名(name)属性
想输入按照学生成绩高低排列的学生姓名,如果学生成绩相同,按照学号大小排列学生姓名
命令:select name from student order by grade,sID;
注意:当且仅当表中包含成绩相同的学生记录时,才会按照学号排序;
如果表中不包含成绩相同的学生记录,按照学号排序不起作用

3 按指定方向排序
默认是升序排序(ASC),如果采用降序排序,必须指定DESC
命令格式:select 列名 from 表名 order by 列名1 DESC,列名2;
命令含义:先将数据按照列名1降序排列,如果有记录存在列名1的取值相同,再按照列名2升序排列(未特殊指明即是升序排列)
注意:DESC只对其紧跟的列名起作用,如果要设定多个列进行降序排序,必须对每个列指定DESC关键字

关于子句的顺序:使用子句的次序不对将产生错误消息。order by子句必须位于from子句之后,limit子句必须位于order by子句之后

发布了90 篇原创文章 · 获赞 8 · 访问量 8258

猜你喜欢

转载自blog.csdn.net/weixin_43854189/article/details/102650156
今日推荐