函數能夠幫助用戶便捷的完成不少事情,所以,MySQL中有不少內置的函數:字符串函數、日期函數、數值函數等數據庫
1、字符串函數express
字符串函數是最經常使用的一種函數,如下列出經常使用的字符串函數,以供參考;app
函數 | 功能 |
CONCAT(s1,s2...sn) | 字符串 s1,s2 等多個字符串合併爲一個字符串 |
INSERT(s1,x,len,s2) | 字符串 s2 替換 s1 的 x 位置開始長度爲 len 的字符串 |
LOWER(s) | 將字符串 s 的全部字母變成小寫字母 |
UPPER(s) | 將字符串轉換爲大寫 |
LEFT(s,n) | 返回字符串 s 的前 n 個字符(最左邊的n個字符) |
RIGHT(s,n) | 返回字符串 s 的後 n 個字符(最右邊的n個字符) |
LPAD(s1,len,s2) | 在字符串 s1 的開始處填充字符串 s2,使字符串長度達到 len |
RPAD(s1,len,s2) | 在字符串 s1 的結尾處添加字符串 s2,使字符串的長度達到 len |
LTRIM(s) | 去掉字符串 s 開始處的空格 |
RTRIM(s) | 去掉字符串 s 結尾處的空格 |
TRIM(s) | 去掉字符串 s 開始和結尾處的空格 |
REPEAT(s,n) | 將字符串 s 重複 n 次 |
REPLACE(s,s1,s2) | 將字符串 s2 替代字符串 s 中的字符串 s1 |
REVERSE(s) | 將字符串s的順序反過來 |
STRCMP(s1,s2) | 比較字符串 s1 和 s2,若是 s1 與 s2 相等返回 0 ,若是 s1>s2 返回 1,若是 s1<s2 返回 -1 |
SUBSTRING(s, start, length) | 從字符串 s 的 start 位置截取長度爲 length 的子字符串函數 |
2、數值函數加密
MySQL中常見的數值函數 | ||
序號 | 函數 | 功能 |
1 | ABS(x) | 返回 x 的絕對值 |
MOD(x,y) | 返回 x 除以 y 之後的餘數 |
|
SQRT(x) | 返回x的平方根 | |
POW(x,y) | 返回 x 的 y 次方 | |
EXP(x) | 返回 e 的 x 次方 | |
LOG(x) | 返回天然對數(以 e 爲底的對數 | |
2 | MAX(expression) | 返回字段 expression 中的最大值 |
MIN(expression) | 返回字段 expression 中的最小值 | |
SUM(expression) | 返回指定字段的總和 | |
COUNT(expression) | 返回查詢的記錄總數,expression 參數是一個字段或者 * 號 | |
AVG(expression) | 返回一個表達式的平均值,expression 是一個字段 | |
3 | CEIL(x) |
返回大於或等於 x 的最小整數 |
FLOOR(x) | 返回小於或等於 x 的最大整數 | |
ROUND(x) | 返回離 x 最近的整數 | |
TRUNCATE(x,y) | 返回數值 x 保留到小數點後 y 位的值(與 ROUND 最大的區別是不會進行四捨五入 |
|
4 | RAND() |
返回 0 到 1 的隨機數 |
3、日期與時間函數spa
MySQL中常見的日期和時間函數 | |
函數 | 功能 |
CURDATE() | 返回當前日期 |
CURTIME() | 返回當前時間 |
NOW() | 返回當前日期和時間 |
UNIX_TIMESTAMP(date) | 返回日期date的unix時間戳 |
FROM_UNIXTIME | 返回unix時間戳的日期值 |
YEAR(date) | 返回年份 |
MONTH(date) | 返回日期date中的月份值,1 到 12 |
MONTHNAME(date) | 返回日期當中的月份名稱,如 Janyary |
WEEK(date) | 計算日期 date 是本年的第幾個星期,範圍是 0 到 53 |
HOUR(time) | 返回 time中的小時值 |
MINUTE(time) | 返回 time 中的分鐘值 |
SECOND(time) | 返回 time 中的秒鐘值 |
DATE_FORMAT(date,fmt) | 按表達式 fmt的要求顯示日期 date |
DATE_ADD(date,INTERVAL expr type) | 計算起始日期 date 加上一個時間段後的日期 |
DATEDIFF(date1,date2) | 計算日期 date1->date2 之間相隔的天數 |
4、流程函數unix
流程函數是很經常使用的一類函數,用戶可使用這類函數在一個SQL語句中實現條件選擇,可提升語句的效率。ip
MySQL中的流程函數 | |
函數 | 功能 |
IF(value,t,f) | 若是value是真,返回t;不然返回f |
IFNULL(value1,value2) | 若是value1不爲空,返回value1;不然返回value2 |
CASE WHEN[value1]THEN[result]…ELSE[default]END | 若是value1是真,返回result1;不然返回default |
CASE[expr]WHEN[value1]THEN[result]…ELSE[default]END | 若是expr等於value1,返回result1;不然返回default |
5、其餘經常使用函數字符串
MySQL中的其餘經常使用函數 | |
函數 | 功能 |
DATABASE() | 返回當前數據庫名 |
VERSION() | 返回數據庫的版本號 |
USER() | 返回當前用戶 |
INET_ATON(IP) | 返回ip地址的數字表達式 |
INET_NTOA(num) | 返回數字表明的ip地址 |
PASSWORD(str) | 返回字符串str的加密版本 |
MD5 | 返回字符串的MD5值 |
MySQL中的流程函數io