首頁 >資料庫 >mysql教程 >select 語句

select 語句

大家讲道理
大家讲道理原創
2017-05-28 11:22:261482瀏覽

1. order by(排序)

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

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

   tip : 校對規則 決定 排序關係。

          允許多重欄位排序(先按第一個欄位排序,當出現不能區分的時候,再按第二個欄位進行排序,依此類推)。

【舉栗子】 對於下表,輸入select * from tb_name; 時,會依照輸入順序依序顯示表格中的資料:

         

       當需要將資料表中資料依照欄位stu_score 降序排列時,在輸入語句後加上order by stu_score desc .

        

       如果不註明昇序、降序,預設使用升序:

       

      若使用多重欄位排序,eg. 先按stu_score排序,若分數相同,再依照開課時間date_begin進行排序,語句為:

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

#tip : order by是將檢索出來的資訊排序,因此需要寫在where語句後。

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

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

   limit 發生在排序、檢索等行為之後,所以 limit 出現在最後。

   對於下列的資料表,若限制只顯示其中的1個數據,則輸出結果為右圖:

                      # 最初資料輸入的順序,取第一組資料輸出。

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

          

   語法:limit 偏移量總記錄數

;

           偏移量:被移除的起始點。      總記錄數:截取的長度。

          若不寫入偏移量,預設從0開始。

3.

distinct

(移除重複記錄)(與

all對應)    當在表格exam_stu中,顯示欄位stu_score中的所有資料時,結果如下:

    

   若想要移除其中的重複記錄,可使用語句,於是兩個95分便只剩下了一個:

    

   重複記錄的標準是依照查詢

的欄位來決定的,當語句為select distinct * 時,只有當所有欄位都一樣時,才認為兩條資料重複;

   當語句是select distinct stu_score時,當兩個資料的stu_score相同時,認為二者重複;

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

4.

union查詢

聯合查詢

    將多個 select 語句合併在一起,稱為聯合運算。

    使用 union 關鍵字,結合兩個 select 語句即可。

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

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

                select teacher_name,days from teacher_class 30310;

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

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

                           ,可用一下格式:

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

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

     

子語句的排序

       ① 子語句包在子括號內;

       ② 子括號內;

       ② 子語句的使用選項時,才生效。原因是:union會對沒有limit的字句的order by優化(忽略)。

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

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

#注意: ① 多個select 語句的檢索到的字段數必須一致;更嚴格的是,

資料型別上也應該要求一致(但是mysql內部會做型別轉換處理,要求是能轉換成功)。

以上是select 語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn