函數
聚合函數
COUNT() : 計算表中的記錄數(行數)
SELECT COUNT(列名) FROM Product; (下列函數表達式相同)
SUM() : 計算表中數值列中數據的合計值
AVG() : 計算表中數值列中數據的平均值
MAX() : 求出表中任意列中數據的最大值
MIN() : 求出表中任意列中數據的最小值
算術函數
ABS(數值) 絕對值函數
SELECT m, ABS(m) AS abs_col FROM SampleMath;
MOD(被除數,除數) 求餘函數
ROUND(數值,保留小數的位數) 四捨五入函數
CEIL(數值) 向上取整
FLOOR(數值) 向下取整
PI() 返回圓周率
RAND() 返回一個小於1的隨機數
SQRT(數值) 返回一個數的平方根
字符串函數
CONCAT(str1, str2) 拼接字符串
LENGTH(str) 字符串長度函數
Instr(字符串,子串) 返回子串第一次出現的索引值,如果沒有則返回0
REGEXP 'expr' 正則表達式
SELECT name FROM person_tbl WHERE name REGEXP '^st';
NOT REGEXP
REGEXP_REPLACE()
REGEXP_SUBSTR()
字符串轉換函數
LTRIM(str) 去除串左邊的空格
RTRIM(str) 去除串右邊的空格
LOWER(str) 小寫轉換函數
UPPER(str) 大寫轉換函數
REPLACE(被替換的str,傳入的str) 替換字符串函數
SUBSTRING(str,索引) 字符串的截取函數
日期函數
CURRENT_DATE() 當前日期函數
SELECT CURRENT_DATE();
CURRENT_TIME() 當前時間函數
TIME() 返回日期時間的時間部分
DATE() 返回日期時間的日期部分
DATE_FORMAT() 返回格式化的日期或時間串
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
YEAR() 返回日期的年份部分
MONTH() 返回日期的月份部分
MONTHNAME() 返回日期對應月份的英文名
WEEK() 計算日期是一年中的第幾周
WEEKOFYEAR() 計算某天位於一年中的第幾周
DAY() 返回日期的天數部分
DAYOFYEAR() 返回日期是一年中的第幾天
DAYOFMONTH() 返回日期在一個月中的位置
DAYNAME() 返回日期對應工作日的英文名
HOUR() 返回時間的小時部分
MINUTE() 返回時間的分鐘部分
SECOND() 返回時間的秒部分
DATEOFWEEK() 對於日期,返回對應的星期幾
DATEDIFF() 計算兩個日期之差
NOW()、CURRENT_TIMESTAMP()、LOCALTIME()、SYSDATE() 返回當前日期和時間
條件判斷函數
IF(expr, v1, v2) 如果expr表達式爲True則返回v1,如果爲False則返回v2
示例:
SELECT IF(1<2,'yes','no');
IFNULL(v1,v2) 如果v1不爲null,返回v1,如果爲null,返回v2
示例:
SELECT IFNULL(NULL,2);
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END
如果expr等於某個vn,則返回對應位置THEN後面的結果,如果所有值都不想等,則返回ELSE的rn
示例:
SELECT product_name,
CASE WHEN product_type = ' 衣服 '
THEN 'A : ' | | product_type
WHEN product_type = ' 辦公用品 '
THEN 'B : ' | | product_type
WHEN product_type = ' 廚房用具 '
THEN 'C : ' | | product_type
ELSE NULL
END AS abc_product_type
FROM Product;
系統信息函數
VERSION() 返回當前MYSQL版本號
CONNECTION_ID() 查看當前用戶的連接數
SELECT USER() 獲取當前登錄用戶名稱