mysql查询数据时,如何使用排序操作?

mysql数据排序

在查询数据时,如果没有使用排序操作,默认情况下SQL会按数据添加的顺序来排列查询结果。

要对数据进行排序,需要在select语句后边加上order by 以及排序依据。

▲ 按照排序依据排序可以分为:按照列名排序、列的别名排序、列的编号排序。

▲ 按照顺序升降可以分为:升序排列(由小到大)和降序排列(由大到小),升序排列在排序依据后边加ASC(asc可以省略)、降序排列在排序依据后边加DESC(DESC不能省略),也就是默认情况下是按照升序排列的。

▲ 按照列的多少可以分为:单列排序、多列排序。

现有学生表如下图:

按照年龄由小到大对学生进行排序(单列排序)。

按照列名排序

select * from student order by sage asc;

按照列的编号排序

select * from student order by 4 asc;

按照列的别名排序

select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 年龄 asc;

先按照性别由男到女排,再按照年龄由大到小排(多列排序)。

select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 性别 desc,年龄 desc;

先按照年龄由大到小排列,再按照性别由女到男排列(多列排序)。

按照列名排序

select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by sage desc,ssex asc;

按照列的编号排序

select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 3 desc,4 asc;

按照列的别名排序

select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 年龄 desc,性别 asc;

需要注意按照多列排序时,哪列在前哪列在后排出来结果是完全不同的,所以多列排序一定要注意列的顺序。按照列的别名排序时,必须先给列起别名。

你可能感兴趣的:(mysql查询数据时,如何使用排序操作?)