首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 常用函數大全:數學、聚合、字串、日期、加密、流程控制、格式化、類型轉換、系統資訊

     編輯:MySQL 資料庫相關知識

    一、數學函數

    函數說明範例
    ABS(x)絕對值ABS(-5) → 5
    CEILING(x)向上取整CEILING(3.14) → 4
    FLOOR(x)向下取整FLOOR(3.99) → 3
    ROUND(x, d)四捨五入保留 d 位小數ROUND(3.14159, 2) → 3.14
    RAND([seed])0-1 隨機數,種子固定則序列固定RAND(1)
    MOD(x, y)餘數MOD(10, 3) → 1
    POWER(x, y)x 的 y 次方POWER(2, 3) → 8
    SQRT(x)平方根SQRT(16) → 4
    TRUNCATE(x, d)截斷到 d 位小數 (不四捨五入)TRUNCATE(3.14159, 2) → 3.14
    GREATEST/LEAST最大/最小值GREATEST(1,5,3) → 5

    二、聚合函數 (搭配 GROUP BY)

    函數說明
    COUNT(col)非 NULL 行數
    SUM(col)求和
    AVG(col)平均值
    MIN/MAX(col)最小/最大值
    GROUP_CONCAT(col [SEPARATOR ','])分組內字串聚合

    三、字串函數

    函數說明
    CONCAT(s1, s2, ...)拼接,任一 NULL 結果 NULL
    CONCAT_WS(sep, s1, s2, ...)帶分隔符拼接,忽略 NULL
    LENGTH(str) / CHAR_LENGTH(str)位元組長度 / 字元長度
    SUBSTRING(str, pos, len)截取子串
    LEFT/RIGHT(str, len)左/右截取
    TRIM([BOTH|LEADING|TRAILING] [remstr] FROM str)去除首尾空格或指定字元
    REPLACE(str, from, to)全域替換
    LOCATE(substr, str) / POSITION(substr IN str)子串首次出現位置
    LOWER/UPPER(str)大小寫轉換
    REVERSE(str)反轉字串

    四、日期時間函數

    函數說明
    NOW() / CURRENT_TIMESTAMP當前日期時間
    CURDATE() / CURRENT_DATE當前日期
    CURTIME() / CURRENT_TIME當前時間
    DATE_ADD(date, INTERVAL expr unit)日期加減
    DATE_SUB(date, INTERVAL expr unit)日期減法
    DATEDIFF(date1, date2)天數差
    DATE_FORMAT(date, fmt)格式化輸出 (%Y-%m-%d %H:%i:%s)
    STR_TO_DATE(str, fmt)字串解析為日期
    DAYOFWEEK/MONTH/YEAR(date)星期/月/年
    LAST_DAY(date)該月最後一天
    QUARTER(date)季度 (1-4)
    WEEK(date [, mode])週數

    五、加密與雜湊

    函數說明
    MD5(str)MD5 雜湊 (32 hex)
    SHA1(str) / SHA2(str, 256/512)SHA 雜湊
    PASSWORD(str)MySQL 內部密碼雜湊 (5.7+ 已移除)
    AES_ENCRYPT/DECRYPT(str, key)AES 加解密,結果為二進位
    ENCODE/DECODE(str, key)簡易加解密 (不安全,5.7+ 移除)

    六、流程控制函數

    函數說明
    IF(cond, true_val, false_val)三元運算子
    IFNULL(val1, val2)val1 非 NULL 則 val1 否則 val2
    NULLIF(val1, val2)相等回傳 NULL,否則 val1
    CASE WHEN cond THEN res [...] ELSE def END多條件分支
    CASE expr WHEN v1 THEN r1 [...] ELSE def END值匹配分支

    七、格式化函數

    函數說明
    FORMAT(num, decimals)千分位逗號格式化
    DATE_FORMAT(date, fmt)日期格式化
    TIME_FORMAT(time, fmt)時間格式化
    INET_ATON(ip)IPv4 轉無符號整數
    INET_NTOA(num)整數轉 IPv4

    八、類型轉換

    CAST(expr AS type)   -- type: BINARY, CHAR, DATE, TIME, DATETIME, SIGNED, UNSIGNED, DECIMAL
    CONVERT(expr, type)  -- 同 CAST,ODBC 語法

    九、系統資訊函數

    函數說明
    VERSION()伺服器版本
    DATABASE() / SCHEMA()當前資料庫
    USER() / CURRENT_USER()連線用戶 / 認證用戶
    CONNECTION_ID()連線執行緒 ID
    FOUND_ROWS()上一條 SELECT 滿足條件總行數 (配合 SQL_CALC_FOUND_ROWS)
    BENCHMARK(count, expr)效能測試:重複執行 expr count 次
    LAST_INSERT_ID()上一條 INSERT 產生的 AUTO_INCREMENT 值
    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved