免費學習推薦:mysql影片教學
本文章講解是MySQL的函數方法,涵蓋所有的MySQL常見的方法。以下是本篇文章的目錄結構,可以依照自己需求點選右邊目錄尋找:
(一)數字函數
1、ABS(x) 傳回x的絕對值
SELECT ABS(-1); ---- 返回1
2、AVG(expression) 傳回一個表達式的平均值,expression 是一個欄位
SELECT AVG(age) FROM student;
3、CEIL(x)/CEILING(x) 傳回大於或等於x 的最小整數
SELECT CEIL(1.5); SELECT CEILING(1.5); ---- 返回2
4、FLOOR(x ) 傳回小於或等於x 的最大整數
SELECT FLOOR(1.5); ---- 返回1
5、EXP(x) 傳回e 的x 次方
SELECT EXP(3); ---- 计算 e 的三次方,返回20.085536923188
#6、GREATEST (expr1, expr2, expr3, …) 傳回清單中的最大值
SELECT GREATEST(3, 12, 34, 8, 25); ---- 返回以下数字列表中的最大值34
7、LEAST(expr1, expr2, expr3, …) 傳回清單中的最小值
SELECT LEAST(3, 12, 34, 8, 25); ---- 返回以下数字列表中的最小值3
8、LN 傳回數字的自然對數
SELECT LN(2); ---- 返回 2 的自然对数:0.6931471805599453
9、LOG(x) 傳回自然對數(以e 為底的對數)
SELECT LOG(20.085536923188); ---- 返回 3
10、MAX(expression)返回字段expression 中的最大值
SELECT MAX(age) AS maxAge FROM Student; ---- age最大值
11、MIN(expression)返回字段expression 中的最大值
SELECT MIN(age) AS minAge FROM Student; ---- age最小值
12、POW(x,y)/POWER(x,y)傳回x 的y 次方
SELECT POW(2,3); SELECT POWER(2,3); ---- 返回2 的 3 次方:8
#13 、RAND()傳回0 到1 的隨機數
SELECT RAND(); ---- 返回 0 到 1 的随机数,若()里面有数字,RAND(x),x相同时,返回值相同
14、ROUND(x)傳回離x 最近的整數
SELECT ROUND(1.23456); ---- 返回 1
15 、SIGN(x)傳回x 的符號,x 是負數、0、正數分別回傳-1、0 和1
SELECT SIGN(-10); ---- 返回 -1
16、SQRT(x)傳回x的平方根
SELECT SQRT(25); ---- 返回5
17、SUM(expression)傳回指定欄位的總和
SELECT SUM(age) AS totalAage FROM Student; ---- 返回age的总和
18、TRUNCATE(x,y)傳回數值x 保留到小數點後y 位的值(與ROUND 最大的差別是不會進行四捨五入)
SELECT TRUNCATE(1.23456,3); ---- 返回1.234
(二)字串函數
1、傳回字串s 的第一個字元的ASCII 碼
SELECT ASCII('AB'); ---- 返回A的ASCII码值:65
2、LENGTH/CHAR_LENGTH(s)/CHARACTER_LENGTH(s)傳回字串s 的字元數
SELECT LENGTH('1234'); ---- 返回4
3、CONCAT(s1,s2…sn)字串s1,s2 等多個字串合併為一個字串
SELECT CONCAT('hel','llo'); ---- 返回hello
4、FIND_IN_SET( s1,s2)傳回字串s2中與s1相符的字串的位置
SELECT FIND_IN_SET("c", "a,b,c,d,e"); ---- 返回3
5、FORMAT(x,n)函數可以將數字x 進行格式化「#, .##」, 將x 保留到小數點後n 位,最後一位四捨五入
SELECT FORMAT(250500.5634, 2); ---- 返回250,500.566、INSERT(s1,x,len,s2)字串s2 替換s1 的x 位置開始長度為len 的字串
SELECT INSERT("google.com", 1, 6, "runnob"); ---- 返回runoob.com7、LOCATE(s1,s)從字串s 取得s1 的開始位置
#
SELECT LOCATE('st','myteststring'); ---- 返回58、LCASE(s)/LOWER(s)將字串s 的所有字母變成小寫字母
SELECT LOWER('RUNOOB'); ---- 返回runoob9、UCASE(s)/UPPER(s )將字串s 的所有字母變成大寫字母
SELECT UCASE('runoob'); ---- 返回RUNOOB10、TRIM(s)去掉字串s 開始和結尾處的空格
SELECT TRIM(' RUNOOB '); ---- 返回RUNOOB11、LTRIM(s)去掉字串s 開始處的空格
SELECT LTRIM(' RUNOOB '); ---- 返回 ’RUNOOB ‘12、RTRIM(s)去掉字串s 結尾處的空格
SELECT RTRIM(' RUNOOB '); ---- 返回 ’ RUNOOB‘13、SUBSTR(s, start, length)從字串s 的start 位置截取長度為length 的子字串
SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString; ---- 从字符串 RUNOOB 中的第 2 个位置截取 3个 字符,返回UNO14、SUBSTR/ SUBSTRING(s, start, length)從字串s 的start 位置截取長度為length 的子字串
SELECT SUBSTR/SUBSTRING("RUNOOB", 2, 3); ---- 从字符串 RUNOOB 中的第 2 个位置截取 3个 字符,返回UNO15、POSITION(s1 IN s)從字串s 中獲取s1 的起始位置
SELECT POSITION('b' in 'abc'); ---- 返回216、REPEAT(s,n)將字串s 重複n 次
SELECT REPEAT('runoob',3); ---- 返回runoobrunoobrunoob17、REVERSE(s )將字串s的順序反過來
SELECT REVERSE('abc'); ---- 返回cba18、STRCMP(s1,s2)比較字串s1 和s2,如果s1 與s2 相等返回0 ,如果s1>s2 返回1,如果s1
SELECT STRCMP("runoob", "runoob"); ---- 返回0(三)日期函數
1、CURDATE()/CURRENT_DATE()傳回目前日期
SELECT CURDATE(); SELECT CURRENT_DATE(); ---- 返回2019-02-192、CURRENT_TIME()/CURTIME()傳回目前時間
SELECT CURRENT_TIME(); ---- 返回11:40:453、CURRENT_TIMESTAMP()傳回目前日期和時間
SELECT CURRENT_TIMESTAMP(); ---- 返回2019-02-19 11:41:324、ADDDATE(d,n)計算起始日期d 加上n 天的日期
SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY); ---- 返回2017-06-255、ADDTIME(t, n)時間t 加上n 秒的時間
SELECT ADDTIME('2011-11-11 11:11:11', 5); ---- 返回2011-11-11 11:11:166、DATE()從日期或日期時間表達式中提取日期值
SELECT DATE("2017-06-15 11:11:16"); ---- 返回2017-06-157、DAY(d)傳回日期值d 的日期部分####
SELECT DAY("2017-06-15"); ---- 返回15
8、DATEDIFF(d1,d2)计算日期 d1->d2 之间相隔的天数
SELECT DATEDIFF('2001-01-01','2001-02-02'); ---- 返回-32
9、DATE_FORMAT按表达式 f的要求显示日期 d
SELECT DATE_FORMAT('2011.11.11 11:11:11','%Y-%m-%d %r'); ---- 返回2011-11-11 11:11:11 AM
10、DAYNAME(d)返回日期 d 是星期几,如 Monday,Tuesday
SELECT DAYNAME('2011-11-11 11:11:11'); ---- 返回Friday
11、DAYOFMONTH(d)计算日期 d 是本月的第几天
SELECT DAYOFMONTH('2011-11-11 11:11:11'); ---- 返回11
12、DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
SELECT DAYOFWEEK('2011-11-11 11:11:11'); ---- 返回6
13、DAYOFYEAR(d)计算日期 d 是本年的第几天
SELECT DAYOFYEAR('2011-11-11 11:11:11'); ---- 返回315
14、EXTRACT(type FROM d)从日期 d 中获取指定的值,type 指定返回的值
type可取值为:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
SELECT EXTRACT(MINUTE FROM '2011-12-13 14:15:16'); ---- 返回15
15、DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
SELECT DAYOFWEEK('2011-11-11 11:11:11'); ---- 返回6
16、UNIX_TIMESTAMP()得到时间戳
SELECT UNIX_TIMESTAMP('2019-2-19'); SELECT UNIX_TIMESTAMP(expression); ---- 返回1550505600
17、FROM_UNIXTIME()时间戳转日期
SELECT FROM_UNIXTIME(1550505600); ---- 返回2019-02-19 00:00:00 SELECT FROM_UNIXTIME(1550505600, '%Y-%m-%d'); ---- 返回2019-02-19
(四)MySQL高级函数
1、IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2
SELECT IF(1>0,'yes','no'); ---- 返回yes
2、CONV(x,f1,f2)返回 f1 进制数变成 f2 进制数
SELECT CONV(13,10,2); ---- 返回1101
3、CURRENT_USER()/SESSION_USER()/SYSTEM_USER()/USER()返回当前用户
4、DATABASE()返回当前数据库名
5、VERSION()返回数据库的版本号
有不正确的地方,欢迎前来指正!
相关免费学习推荐:mysql数据库(视频)
以上是總結 MySQL常用函數大全的詳細內容。更多資訊請關注PHP中文網其他相關文章!