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

MySQL 內建函數速查與實用範例

     編輯:MySQL 綜合教學

MySQL 內建函數速查與實用範例

MySQL 提供豐富的內建函數,涵蓋日期時間、字串、數學、加密、資訊查詢等類別。本文整理高頻使用的函數並附帶實戰範例,方便開發時快速查閱。

一、日期時間函數

函數說明範例
NOW()當前日期時間 (YYYY-MM-DD HH:MM:SS)SELECT NOW();
SYSDATE()執行瞬間的日期時間(動態)SELECT SYSDATE();
CURDATE()當前日期SELECT CURDATE();
CURTIME()當前時間SELECT CURTIME();
DATE_FORMAT(date, fmt)按格式輸出日期SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
DATE_ADD(date, INTERVAL expr unit)日期加減SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
DATEDIFF(date1, date2)兩日期相差天數SELECT DATEDIFF('2024-01-01', '2023-01-01');
LAST_DAY(date)該月最後一天SELECT LAST_DAY('2024-02-15');

二、字串函數

函數說明範例
CONCAT(str1, str2, ...)字串拼接SELECT CONCAT('Hello', ' ', 'World');
SUBSTRING(str, pos, len)截取子串SELECT SUBSTRING('abcdef', 2, 3); -- bcd
TRIM(str)去除首尾空格SELECT TRIM(' abc ');
REPLACE(str, from, to)替換字串SELECT REPLACE('a,b,c', ',', ';');
LENGTH(str)字串字節長度SELECT LENGTH('中文'); -- 6 (utf8mb4)
CHAR_LENGTH(str)字串字符長度SELECT CHAR_LENGTH('中文'); -- 2

三、資訊查詢函數

SELECT DATABASE();   -- 當前資料庫
SELECT VERSION();    -- MySQL 版本
SELECT USER();       -- 當前連接用戶
SELECT CONNECTION_ID(); -- 連接線程 ID

四、條件與流程控制

-- IF
SELECT IF(score >= 60, '及格', '不及格') FROM exam;

-- CASE
SELECT CASE
  WHEN score >= 90 THEN '優'
  WHEN score >= 60 THEN '及格'
  ELSE '不及格'
END AS grade FROM exam;

-- COALESCE 返回第一個非 NULL 值
SELECT COALESCE(NULL, NULL, 'default', 'other'); -- 'default'

-- NULLIF 兩值相等返回 NULL
SELECT NULLIF(5, 5); -- NULL

五、聚合與窗口函數 (MySQL 8.0+)

-- ROW_NUMBER() 為分組內排序產生序號
SELECT id, dept, salary,
       ROW_NUMBER() OVER (PARTITION BY dept ORDER BY salary DESC) AS rn
FROM employee;

參考資源

持續更新中… 歡迎補充常用函數場景。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved