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子句之後