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

MySQL 常用函數大全:字串、數值、日期時間、系統資訊

     編輯:MySQL 綜合教學

MySQL 常用函數大全:字串、數值、日期時間、系統資訊

MySQL 函數可用於 SELECT、UPDATE、DELETE 等陳述式中,主要分為四大類:字串、數值、日期時間、系統資訊。

1. 字串函數

1.1 合併字串:CONCAT() 與 CONCAT_WS()

CONCAT(s1, s2, ..., sn)          -- 任一參數為 NULL 則回傳 NULL
CONCAT_WS(sep, s1, s2, ..., sn)  -- 以 sep 分隔,忽略 NULL 參數

範例:

SELECT CONCAT('my','s','ql');           -- 'mysql'
SELECT CONCAT('my','s','ql', NULL);     -- NULL
SELECT CONCAT_WS('-', '020', '87658907'); -- '020-87658907'
SELECT CONCAT_WS('-', '020', NULL, '87658907'); -- '020-87658907' (忽略中間 NULL)

1.2 字串比較:STRCMP()

STRCMP(str1, str2)  -- str1>str2 回傳 1;相等 0;str1

1.3 長度計算:LENGTH() 與 CHAR_LENGTH()

LENGTH(str)       -- 位元組長度
CHAR_LENGTH(str)  -- 字元數 (中文每字 3-4 bytes,但字元數為 1)

1.4 大小寫轉換:UPPER()/UCASE()、LOWER()/LCASE()

1.5 字串查找與定位

  • FIND_IN_SET(str, strlist):在逗號分隔列表中查找位置
  • FIELD(str, str1, str2...):在參數列表中查找首次匹配位置
  • LOCATE(sub, str)、POSITION(sub IN str)、INSTR(str, sub):返回子串起始位置
  • ELT(n, str1, str2...):返回第 n 個字串
  • MAKE_SET(bits, str1, str2...):根據位元值選擇字串組合

1.6 子串截取

  • LEFT(str, n)、RIGHT(str, n):左右截取
  • SUBSTRING(str, pos, len)、MID(str, pos, len):指定位置長度截取

1.7 去除空白:LTRIM()、RTRIM()、TRIM()

1.8 字串替換:INSERT()、REPLACE()

INSERT(str, pos, len, newstr)   -- 位置替換
REPLACE(str, oldsub, newsub)    -- 內容替換

2. 數值函數

2.1 隨機數:RAND()、RAND(seed)

2.2 取整:CEIL() (向上)、FLOOR() (向下)

2.3 截取小數:TRUNCATE(x, d)

2.4 四捨五入:ROUND(x)、ROUND(x, d)

3. 日期時間函數

3.1 取得當前日期時間

  • NOW()、CURRENT_TIMESTAMP()、LOCALTIME()、SYSDATE():日期+時間 (推薦 NOW())
  • CURDATE()、CURRENT_DATE():僅日期
  • CURTIME()、CURRENT_TIME():僅時間

3.2 日期時間分量提取

YEAR(), QUARTER(), MONTH(), MONTHNAME(), WEEK(), WEEKOFYEAR()
DAYOFMONTH(), DAYOFYEAR(), DAYOFWEEK(), WEEKDAY(), DAYNAME()
HOUR(), MINUTE(), SECOND()
EXTRACT(type FROM date)  -- type: YEAR/MONTH/DAY/HOUR/MINUTE/SECOND

3.3 日期運算

  • TO_DAYS(date)、FROM_DAYS(n):基準日 (0000-01-01) 運算
  • DATEDIFF(date1, date2):兩日期差天數
  • ADDDATE(date, n)、SUBDATE(date, n):加減天數
  • ADDDATE(date, INTERVAL expr type)、SUBDATE(date, INTERVAL expr type):加減間隔 (YEAR_MONTH 等)
  • ADDTIME(time, sec)、SUBTIME(time, sec):加減秒數

4. 系統資訊函數

VERSION()      -- 伺服器版本
DATABASE()     -- 當前資料庫
USER()         -- 當前用戶
LAST_INSERT_ID() -- 最後自增 ID

熟練掌握這些函數,能讓 SQL 查詢更簡潔高效,減少應用層資料處理邏輯。

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