首先,order by是用来写在where之后,给多个字段来排序的一个DQL查询语句。
其次,order by写法:
1. select 字段列表/* from 表名 where 条件 order by 字段名1 asc/desc, 字段名2 asc/desc,.......
2. select 字段列表/* from 表名 where 条件 order by 字段序号 asc/desc, 字段序号 asc/desc,....... (此时字段序号要从1开始)
3. select 字段列表/* from 表名 where 条件 order by 字段别名1 asc/desc, 字段别名2 asc/desc,.......(这里类似于第一种,无非就是把字段名加了个别名来代替而已。)
然后,order by的方式:
1.asc 升序,可以省略,是数据库默认的排序方式
2.desc 降序,跟升序相反。
最后要注意order by的原则,写在最前面的字段,他的优先级最高,也就是写法中第一个的字段名1的优先级最高,优先执行他的内容。
下面举个栗子吧!
这里我有几个表
首先以sclass的降序查找student表中的记录
写法为:
select * from student t order by t.sclass desc;
输出为:
可以看到是以sclass的降序排列的。
再来:以Cno升序、Degree降序查询Score表的所有记录。
写法为:
select * from score s order by s.cno, s.degree desc;
输出为:
可以看到是优先以cno的升序来排列的,在cno相同的里面再以degree的降序来排列的。
所以总结一下,order by的用法就是用来做排序,写在where之后,简单明了。