明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

select 語句

[摘要]1. order by (排序) 通常使用一個字段作為參考標準,進行排序。 語法:order by 【字段】 asc desc;(升序、降序) tip : 校對規(guī)則 決定 排序關系。 允許多字段排序(先按第一個字段排序,當出現(xiàn)不能區(qū)分的時候,按第二個字段進行排序,依此...
1. order by (排序)

通常使用一個字段作為參考標準,進行排序。

語法:order by 【字段】 asc desc;(升序、降序)

tip : 校對規(guī)則 決定 排序關系。

允許多字段排序(先按第一個字段排序,當出現(xiàn)不能區(qū)分的時候,按第二個字段進行排序,依此類推)。

【舉個栗子】 對于下表,輸入select * from tb_name; 時,會按照輸入順序依次顯示表中的數(shù)據(jù):

select 語句

當需要對表中數(shù)據(jù)按照字段 stu_score 進行降序排列時,在輸入語句后加上order by stu_score desc .

select 語句

如果不注明升序、降序,默認使用升序:

select 語句

若使用多字段排序,eg. 先按stu_score進行排序,若分數(shù)相同,再按照開課時間date_begin進行排序,語句為:

select * from tb_name order by stu_score desc , date_begin , asc;

tip : order by是對檢索出來的信息進行排序,因此需要寫在where語句后。

如果是分組,則應該使用對分組字段進行排序的group by語法。

2. limit(限制獲得的記錄數(shù)量)

limit 發(fā)生在排序、檢索等行為之后,所以 limit 出現(xiàn)在最后。

對于下面的數(shù)據(jù)表,若限制只顯示其中的1個數(shù)據(jù),則輸出結果為右圖:

select 語句 select 語句

即會按照最初數(shù)據(jù)輸入的順序,取第一組數(shù)據(jù)進行輸出。

也可以在進行完排序后,限制只輸出前3名:

select 語句

語法:limit 偏移量 總記錄數(shù)

偏移量:截取的開始點。 總記錄數(shù):截取的長度。

若不寫偏移量,默認從0開始。

3. distinct(去除重復記錄)(與all相對應)

當在表exam_stu中,顯示字段stu_score中的所有數(shù)據(jù)時,結果如下:

select 語句

若想去除其中的重復記錄,可使用一下語句,于是兩個95分便只剩下了一個:

select 語句

重復記錄的標準是按照查詢的字段來確定的,當語句為select distinct * 時,只有當所有字段都一樣時,才認為兩條數(shù)據(jù)重復;

當語句是 select distinct stu_score時,當兩條數(shù)據(jù)的stu_score相同時,認為二者重復;

當語句是select distinct stu_score,stu_name時,必須分數(shù)和名字一樣,才認為二者重復。

4. union查詢聯(lián)合查詢

將多條 select 語句合并到一起,稱為聯(lián)合操作。

使用 union 關鍵字,聯(lián)合兩個 select 語句即可。

【舉個栗子】要在表中查詢給php0228班和php0331班上課天數(shù)最多的兩個老師,語句為

select teacher_name,days from teacher_class where class_name='php0228' order by days desc limit 1;

select teacher_name,days from teacher_class where class_name='php0331' order by days desc limit 1;

這兩個分開的語句的確可以查找出想要的結果,但是若要做聯(lián)合查詢呢?

語句是 :(語句1)union(語句2);

但這種寫法會將重復的記錄刪除,若想保留所有記錄,哪怕重復,可用一下格式:

(語句1)union all (語句2);

tip:在使用union的情況下,排序有幾點需要注意。

子語句的排序

① 將子語句包裹在子括號內;

② 子語句的order by只有在配合limit使用時,才生效。原因是:union會對沒有l(wèi)imit的字句的order by優(yōu)化(忽略)。

若相對union的結果進行排序,使用如下語句:

(語句1)union(語句2)order by days ;

注意: ① 多個 select 語句的檢索到的字段數(shù)必須一致;更嚴格的是,數(shù)據(jù)類型上也應該要求一致(但是mysql內部會做類型轉換處理,要 求是能轉換成功)。

以上就是select 語句 的詳細內容,更多請關注php中文網(wǎng)其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




標簽:select 語句