mySQL 查詢語句整理

來源:互聯網
上載者:User

標籤:不能   mysql   bubuko   解決   條件運算式   alt   like   min   2.7   

單表查詢

 MySQL從資料表中查詢資料最基本的語句是SELECT語句,在前面的“增刪查”已經使用過:SELECT * FROM 表名,也就是查詢指定資料表中的所有資料。下面將對SELECT語句進行詳細介紹。

查詢所有欄位

文法:SELECT 欄位名1,欄位名2,…

   FROM 表名

結果:

注意:欄位順序可以更改則顯示的結果也會作出對應的調整:

4.1.2  在SELECT語句中使用(‘ * ’)萬用字元代替所有欄位

文法:SELECT * FROM 表名;

4.1.3  查詢指定的部分欄位

文法:SELECT 欄位名1,欄位名2,… FROM 表名;

4.2   按條件查詢

4.2.1  帶關係運算子的查詢

 文法:SELECT 欄位名1,欄位名2,…

    FROM 表名

      WHERE 條件運算式

在WHERE子句中可以使用如下關係運算子:

關係運算子

說        明

    =

    等於

    <>

    不等於

    !=

    不等於

    <

    小於

    <=

    小於等於

    >

    大於

    >=

    大於等於


舉例:

4.2.2  帶 IN 關鍵字的查詢

IN關鍵字用於判斷某個欄位的值是否在指定集合中,若在,則該欄位所在的記錄將會被查詢出來.

文法:SELECT * | 欄位名1,欄位名2,…

   FROM 表名

   WHERE 欄位名 [ NOT ]  IN (元素1,元素2,…)

注意:NOT IN 與 IN 相反,查詢的是不在指定範圍內的記錄。

4.2.3  帶 BETWEEN AND  關鍵字的查詢

BETWEEN AND 用於判斷某個欄位的值是否在指定範圍之內,若在,則該欄位所在的記錄會被查詢出來,反之不會。

文法:SELECT * | { 欄位名1,欄位名2,… }

   FROM  表名

      WHERE 欄位名 [ NOT ] BETWEEN  值1  AND  值2;

注意:NOT BETWEEN AND 表示查詢指定範圍外的記錄。

4.2.4  空值查詢

在資料表中有些值可能為空白值(NULL),空值不同於0,也不同於Null 字元串,需要使用 IS NULL 來判斷欄位的值是否為空白值。

文法:SELECT * | 欄位名1,欄位名2,…

   FROM 表名

   WHERE 欄位名 IS [ NOT ] NULL

注意:IS NOT NULL 關鍵字用來查詢欄位不為空白值的記錄。

4.2.5  帶 DISTINCT 關鍵字的查詢

很多表中某些欄位的資料存在重複的值,可以使用DISTINCT關鍵字來過濾重複的值,只保留一個值。

文法:SELECT DISTINCT 欄位名 FROM 表名;

注意:DISTINCT 關鍵字還可作用於多個欄位,則只有多個欄位的值都完全相同時才會被認作是重複記錄。

4.2.6  帶 LIKE 關鍵字的查詢

文法:SELECT * | 欄位名1,欄位名2,…

   FROM 表名

   WHERE 欄位名 [ NOT ] LIKE ‘匹配字串’;

 

百分比符號(%)萬用字元

 

匹配任意長度的字串,包括Null 字元串。例如,字串“ c% ”匹配以字元 c 開始,任意長度的字串,如“ ct  ”,“ cut ”,“ current ”等;字串“ c%g ”表示以字元 c 開始,以 g 結尾的字串;字串“ %y% ”表示包含字元“ y ”的字串,無論“ y ”在字串的什麼位置。

 

(2)底線(_)萬用字元

 底線萬用字元只匹配單個字元,若要匹配多個字元,需要使用多個底線萬用字元。例如,字串“ cu_ ”匹配以字串“ cu ”開始,長度為3的字元,如“ cut ”,“ cup ”;字串“ c__l”匹配在“ c ”和“ l ”之間包含兩個字元的字串,如“ cool ”。需要注意的是,連續的“_”之間不能有空格,例如“M_ _QL”只能匹配“My SQL”,不能匹配“MySQL”。

注意:若要查詢的欄位值本來就含有“ % ”或者“ _ ”,則要用“ \ ”進行轉義,如要查詢本身含有“ % ”的字串,命令應改為 “ %\%%”。

4.2.7  帶 AND 關鍵字的多條件查詢

在使用SELECT語句查詢資料時,優勢為了使查詢結果更加精確,可以使用多個查詢條件,如使用 AND 關鍵字可以串連兩個或多個查詢條件。

文法:SELECT * | 欄位名1,欄位名2,…

   FROM 表名

   WHERE 條件運算式1 AND 條件運算式2 [ … AND 條件運算式 n ];

4.2.8  帶 OR 關鍵字的多條件查詢

與 AND 關鍵字不同,OR 關鍵字只要滿足任意一個條件就會被查詢出來

文法:SELECT * | 欄位名1,欄位名2,…

   FROM 表名

   WHERE 條件運算式1 OR 條件運算式2 [ … OR 條件運算式 n ];

4.2.9   OR 和 AND 一起使用的情況

OR 和 AND 一起使用的時候,AND 的優先順序高於 OR,因此二者一起使用時,會先運算 AND 兩邊的運算式,再運算 OR 兩邊的運算式。

進階查詢

彙總函式

  函數名稱

作用

    COUNT()

    返回某列的行數

    SUM()

    返回某列值的和

    AVG()

    返回某列的平均值

    MAX()

    返回某列的最大值

    MIN()

    返回某列的最小值

(1)COUNT()函數:統計記錄的條數

文法:SELECT COUNT(*) FROM 表名

(2)SUM()函數:求出表中某個欄位所有值的總和

文法:SELECT  SUM(欄位名) FROM 表名;

 

(3)AVG()函數:求出表中某個欄位所有值的平均值

文法:SELECT AVG(欄位名) FROM 表名;

(4)MAX()函數:求出表中某個欄位所有值的最大值

文法:SELECT MAX(欄位名) FROM 表名;

(5)MIN()函數:求出表中某個欄位所有值的最小值

文法:SELECT MIN(欄位名) FROM 表名;

4.3.2  對查詢結果進行排序

文法:SELECT 欄位名1,欄位名2,…

   FROM 表名

   ORDER BY 欄位名1 [ ASC | DESC ],欄位名2 [ ASC | DESC ]…

在該文法中指定的欄位名是對查詢結果進行排序的依據,ASC表示升序排列,DESC 表示降序排列,預設情況是升序排列。

4.3.3  分組查詢

在對錶中資料進行統計的時候,可以使用GROUP BY 按某個欄位或者多個欄位進行分組,欄位中值相同的為一組,如男生分為一組,女生分為一組。

文法:SELECT  欄位名1,欄位名2,…

   FROM 表名

   GROUP BY 欄位名1,欄位名2,… [ HAVING 條件運算式 ];

(1)單獨使用 GROUP BY 進行分組

單獨使用GROUP BY 關鍵字,查詢的是每個分組中的一條記錄

注意:若在此2例中鍵入命令之後出現“#1055”錯誤,無法完成分組查詢,是由於MySQL版本升級到了5.7,可自行百度“MySQL 1055錯誤”參考解決辦法。

(2) GROUP BY 和彙總函式一起使用

GROUP BY 和彙總函式一起使用,可以統計出某個或者某些欄位在一個分組中的最大值、最小值、平均值等。

(2) GROUP BY 和 HAVING 關鍵字一起使用

 HAVING關鍵字和WHERE關鍵字的作用相同,區別在於HAVING 關鍵字可以跟彙總函式,而WHERE 關鍵字不能。通常HAVING 關鍵字都和GROUP BY一起使用,用於對分組後的結果進行過濾。

4.3.4  使用 LIMIT 限制查詢結果的數量

文法:SELECT 欄位名2,欄位名2,…

   FROM 表名

   LIMIT [ OFFSET ,] 記錄數

在此文法中,LIMIT 後面可以跟兩個參數,第一個參數“ OFFSET ”表示位移量,如果位移量為0,則從查詢結果的第一條記錄開始,位移量為1則從查詢結果中的第二條記錄開始,以此類推。OFFSET為可選值,預設值為0,第二個參數“記錄數”表示指定返回查詢記錄的條數。

4.4  為表和欄位取別名

4.4.1 為表取別名

在進行查詢操作時,如果表名很長使用起來不方便,可以為表取一個別名來代替表的名稱。

文法:SELECT * FROM 表名 [ AS ] 別名;

4.4.1 為欄位取別名

文法:SELECT 欄位名 [ AS ] 別名 [ ,欄位名 [AS] 別名,…]  FROM 表名 ;

mySQL 查詢語句整理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.