首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

《MySQL必知必會》讀書筆記(二):通配符、正則、字串函數、日期數學與聚合函數

     編輯:MySQL 綜合教學

《MySQL必知必會》讀書筆記(二):通配符、正則、字串函數、日期數學與聚合函數

本章聚焦單表查詢的核心技能:模糊匹配、字串處理、日期運算、數學計算與聚合統計,是編寫高品質 SELECT 語句的基本功。

一、通配符與正則表達式

1. LIKE 通配符

  • %:匹配任意 0~n 字元;
  • _:匹配任意單一字元;
  • 尾部空格可能干擾匹配,建議 TRIM() 預處理。

2. REGEXP 正則表達式

SELECT prod_name FROM products
WHERE prod_name REGEXP '.000' ORDER BY prod_name;

-- OR 邏輯
WHERE prod_name REGEXP '1000|2000';

-- 區分大小寫
WHERE prod_name REGEXP BINARY 'JetPack.000';

預設不區分大小寫,BINARY 關鍵字啟用區分。

二、字串處理函數

函數用途範例
CONCAT(s1,s2...)拼接字串CONCAT(vend_name,'(',vend_country,')')
RTRIM/LTRIM/TRIM去除右/左/兩側空格TRIM(' abc ')
LEFT(s,len)/RIGHT(s,len)取左/右 len 字元LEFT('hello',2) → 'he'
LENGTH(s)字串位元組長度
LOCATE(sub,str[,pos])尋找子串位置(可指定起始位)
LOWER/UPPER大小寫轉換
SUBSTRING(str,pos[,len])擷取子串(位置從 1 起算)
SOUNDEX(s)語音編碼,模糊匹配同音詞WHERE SOUNDEX(cust_contact)=SOUNDEX('Y Lie')
SPACE(n)產生 n 個空格

三、數學運算與測試計算

-- 算術運算符 + - * /
SELECT prod_id, quantity, item_price,
       quantity * item_price AS expanded_price
FROM orderitems WHERE order_num = 20005;

-- 單獨測試函數(無需 FROM 表)
SELECT TRIM(' abc ');
SELECT NOW();

四、日期時間函數

  • DATE()、TIME():擷取日期/時間部分;
  • NOW():當前日期時間;
  • 更多函數見第 3 章筆記。

五、數值處理函數

函數說明
ABS(x)絕對值
COS/SIN/TAN(x)三角函數(弧度)
EXP(x)e^x
MOD(n,m)餘數
PI()圓周率
RAND([seed])隨機數
ROUND(x[,d])四捨五入
SQRT(x)平方根

六、聚合函數

函數說明
AVG(col)平均值(忽略 NULL)
COUNT(col/* )行數(忽略 NULL / 含 NULL)
MAX/MIN(col)最大/最小值
SUM(col)求和(忽略 NULL)

搭配 DISTINCT 可去重聚合:AVG(DISTINCT price)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved