这里采用的都是标准SQL语句,其他数据库的查询出来的结果也可以通过这些语句来进行排序,
SELECT 字段1,字段2....字段n
FROM 表名
ORDER BY 需要排序的字段1 排序规则;
/*
首先执行FROM子句,再去执行SELECT子句,找到满足条件的数据行,然后再把满足条件的数据行
按照排序字段1的排序规则进行排序
其中排序规则有升序和降序,默认不写就是升序
升序需要写的关键字为ASC,降序需要写的关键字为DESC
注意:不要和desc 表名搞混,这个是展示表的结构
*/
SELECT *
FROM student01
ORDER BY age;
/*
把查询得到的student01的所有数据行按照age字段进行升序排列
*/
SELECT 字段1,字段2....字段n
FROM 表名
ORDER BY 需要排序的字段1 排序规则,需要排序字段2 排序规则.....需要排序字段n 排序规则;
/*
首先执行FROM子句,再去执行SELECT子句,找到满足条件的数据行,然后再把满足条件的数据行
按照排序字段1的排序规则进行排序,若排序字段1内容相等,则按照排序字段2进行相应规则的排序
后面的字段也是依次类推
其中排序规则有升序和降序,默认不写就是升序
升序需要写的关键字为ASC,降序需要写的关键字为DESC
注意:不要和desc 表名搞混,这个是展示表的结构
*/
SELECT *
FROM student01
ORDER BY age,name DESC;
/*
对SELECT子句中查询到的数据行先进行age字段的升序排序,当age字段年龄相同时,则按照name字段进行降序排列
*/
SELECT 字段1 AS '别名1',字段2 AS '别名2'...字段n AS '别名n'
FROM 表名
ORDER BY '别名1' 排序规则,'别名2' 排序规则....'别名n' 排序规则n;
SELECT name AS '姓名',age AS '年龄'
FROM student01
ORDER BY 年龄 ASC,姓名 DESC;
/*
如果别名是带单引号的中文的话,在ORDER BY子句中使用别名不用加上单引号
*/
ORDER BY子句的执行顺序永远在最后,再具体一点来说就是,ORDER BY子句的执行顺序永远在SELECT 子句的执行之后
理由: 因为你得把筛选过、已经分组完成后的数据行拿到后才能进行排序,不然你先排序,然后再去分组,然后再还是要去排序,那这样之前的排序操作就没有任何意义了
SELECT 字段1,字段2 ...字段n
FROM 表名
ORDER BY 列编号 排序规则,列编号 排序规则....列编号 排序规则n;
/*
列编号从1开始,依次递增,其中1代表数据库的第一列即为数据表的第一个字段所在的列
*/
SELECT name,age
FROM student01
ORDER BY 2,1 DESC;
/*
列编号这种写法建议不要写,因为阅读体验感极差,然后知道有这个用法
就行,看见别人写这种写法的话,只要自己能看懂就行
*/
SELECT *
FROM student01
ORDER BY age DESC;
SELECT name
FROM student01
ORDER BY age ASC;
/*
ORDER BY中参与排序的字段可以是student01表中的任意一个字段
*/