1. 程式人生 > >Mysql常用語法總結

Mysql常用語法總結

Mysql 常用語法總結

最近學習Mysql資料庫,記錄下常用的語法,持續更新。

mysql常用語法表

關鍵詞 含義 語法 備註
COUNT,SUM,AVG,MAX,MIN 常用聚合函式
GROUP BY 對錶進行分組
HAVING 為聚合結果指定條件 子句中只能用常數、聚合函式、GROUP BY中指定的列名
ORDER BY 對查詢結果進行排序 order by ‘name’ DSEC/ASC 降序/升序
CREATE VIEW 建立檢視,檢視就是儲存好的 SELECT 語句 注1
ABS(數值) 絕對值
MOD 求餘 MOD( 被除數,除數 )
ROUND 四捨五入 ROUND( 物件數值,保留小數的位數
CONCAT 拼接 CONCAT(str1, str2)
LENGTH 字串長度 LENGTH( 字串 )
LOWER 改成小寫
REPLACE 字串的替換 REPLACE( 物件字串,替換前的字串,替換後的字串 )
SUBSTRING 字串的擷取 SUBSTRING (物件字串 FROM 擷取的起始位置 FOR 擷取的字元數)
EXTRACT 擷取日期元素 EXTRACT( 日期元素 FROM 日期 ) YEAR,MONTH,WEEK,DAY,HOUR,MINUTE,SECOND;返回:數值型別
CAST 型別轉換 CAST (轉換前的值 AS 想要轉換的資料型別)
COALESCE 將 NULL 轉換為其他值 COALESCE(x,y,z) 注2
LIKE 模糊查詢 LIKE ‘%name%’ 查詢欄位中含有’name’的詞
BETWEEN 範圍查詢 BETWEEN * AND * 結果中會包含兩個臨界值
NULL 判斷是否為 NULL IS NULL 、 IS NOT NULL
IN 相當於多個OR N ( , , ) (*,*,*)
CASE 條件表示 注3
UNION 表的加法 注4 列的型別和數量需一致,會除去重複的記錄。取並集去重
INTERSECT 選取表中公共部分 注5 取交集
INNER JOIN 內聯結 注6
LEFT(RIGHT) JOIN 左(右)聯結 LEFT(RIGHT) OUTER JOIN

注1:檢視CREATE VIEW語法舉例說明
CREATE VIEW \text{CREATE VIEW} ProductSum (product_type, cnt_product)
AS \text{AS}
SELECT product_type, COUNT(*)
FROM Product
GROUP BY product_type;
建立好檢視之後,使用檢視:
SELECT product_type, cnt_product
FROM ProductSum

注2:COALESCE語法說明:
COALESCE(x,y,z) = x if x is not NULL
COALESCE(x,y,z) = y if x is NULL and y is not NULL
COALESCE(x,y,z) = z if x and y are NULL but z is not NULL
COALESCE(x,y,z) = NULL if x and y and z are all NULL
即,若x為NULL值,可用y值替換。

注3:CASE條件表達語法說明:
CASE WHEN < 求值表示式 > THEN < 表示式 >
WHEN < 求值表示式 > THEN < 表示式 >

ELSE < 表示式 >
END

注4:UNION語法說明:
SELECT product_id, product_name
FROM Product
UNION (ALL)
SELECT product_id, product_name
FROM Product2;
即,將具有相同列的兩表列向拼接,資料記錄行會去重。若想包含重複行,使用UNION ALL

注5:INTERSECT語法說明:
SELECT product_id, product_name
FROM Product
INTERSECT
SELECT product_id, product_name
FROM Product2
ORDER BY product_id;
即,將具有相同列的兩表取交集。

注6:INNER JOIN 語法說明:
FROM ShopProduct AS SP
INNER JOIN \text{INNER JOIN} Product AS P
ON \text{ON} SP.product_id = P.product_id
即,根據ON條件,兩表進行聯結,最終的資料都是完整的,沒有缺失值。

LEFT JOIN \text{LEFT JOIN} 則是根據左表的ON條件進行聯結。