大家還記得我們之前介紹過MySQL的執行順序嗎?MySQL資料插入INSERT INTO與條件查詢WHERE的基本用法(二)。本節課我們将給大家介紹MySQL中常用的幾個關鍵字SELECT/HAVING/DISTINCT/ORDER BY/LIMIT,接下來我們會按照MySQL中的執行順序一一進行介紹。
1、SELECT
SELECT是MySQL查詢語句中使用最多的關鍵字,表示從查詢語句中取出特定字段或者結果,它有以下幾種基本用法。
用法一:取出某個表的所有字段
SELECT * FROM table_name;
複制
注:通常取出某個表的所有字段用星号(*)表示。
例如:取出titanic表中的所有字段
用法二:取出某幾個特定字段
SELECT 字段1,字段2,字段3,... FROM table_name;
複制
例如:取出titanic表中的乘客編号,乘客姓名,性别,年齡資訊。
用法三:取出指定計算結果
SELECT count(*) from table_name;
複制
例如:計算titanic表所有行記錄總數
注:計算某個表的所有行記錄總數可以使用count(*)或count(1)表示。
用法四:按照特定分組取出對應結果資料
SELECT 分組字段,聚合函數
FROM table_name
GROUP BY 分組字段;
複制
例如:分組計算乘客生存與死亡的記錄數。
2、HAVING
HAING關鍵詞一般與聚合函數結合使用,它的基本文法如下。
SELECT 分組字段,聚合函數 FROM table_name
GROUP BY 分組字段
HAVING 聚合函數(條件);
複制
例如,找出人數大于200的船艙等級。
可以看到人數大于200的船艙等級分别是1和3,人數分别為216和491。
注:由于在MySQL中先執行聚合函數的計算,是以HAVING之後可以直接使用聚合函數計算結果的别名,當然也可以使用聚合函數COUNT(PassengerId)>200表示。
3、DISTINCT
DISTINCT是MySQL中去重常用關鍵詞,通常可以對某個或某幾個特定字段進行去重操作。
用法一:對單個字段進行去重
SELECT DISTINCT 字段 FROM table_name;
複制
例如,對titanic表中乘客年齡進行去重。
說明titanic表中共有71個不重複年齡。
用法二:對特定幾個字段進行去重
SELECT DISTINCT 字段1,字段2,字段3 FROM table_name;
複制
例如,對titanic表中船艙等級,乘客姓名進行去重。
結果共865行記錄,這裡是按照船艙等級和乘客姓名兩個次元進行去重的,是以去重後的記錄數通常會比單一次元去重結果數量更多。
4、ORDER BY
ORDER BY表示對結果進行排序操作,它的基本用法如下。
SELECT 字段1,字段2,字段3,... FROM table_name
ORDER BY 排序字段 ASC/DESC
複制
例如,我們對titanic表中乘客年齡從大到小進行排序,展示出客戶姓名與年齡。
在ORDER BY中對字段進行升序排列(從小到大),使用ORDER BY 字段名 ASC ;
如果要對字段進行降序排列(從大到小),則使用ORDER BY 字段名 DESC。
5、LIMIT
表示對結果按指定數量輸出,它的基本使用方法如下。
SELECT * FROM table_name
LIMIT 100;
複制
例如,展示titanic表中前100行記錄。
通常LIMIT 與ORDER BY 結合使用。
例如,對年齡進行降序排列,同時輸出前100行記錄。
通過限制之後,輸出的結果就隻有按年齡降序排列後的前100行記錄。