首頁  >  文章  >  資料庫  >  總結 MySQL常用函數大全

總結 MySQL常用函數大全

coldplay.xixi
coldplay.xixi轉載
2021-02-17 10:04:423408瀏覽

總結 MySQL常用函數大全

免費學習推薦:mysql影片教學

本文章講解是MySQL的函數方法,涵蓋所有的MySQL常見的方法。以下是本篇文章的目錄結構,可以依照自己需求點選右邊目錄尋找:

  • 一、數字函數
  • 二、字串函數
  • 三、日期函數
  • 四、MySQL高階函數

(一)數字函數

1、ABS(x) 傳回x的絕對值

SELECT ABS(-1);
---- 返回1

2、AVG(expression) 傳回一個表達式的平均值,expression 是一個欄位
總結 MySQL常用函數大全

SELECT AVG(age) FROM student;

總結 MySQL常用函數大全

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.56
6、INSERT(s1,x,len,s2)字串s2 替換s1 的x 位置開始長度為len 的字串

SELECT INSERT("google.com", 1, 6, "runnob");
---- 返回runoob.com
7、LOCATE(s1,s)從字串s 取得s1 的開始位置

#

SELECT LOCATE('st','myteststring');
---- 返回5
8、LCASE(s)/LOWER(s)將字串s 的所有字母變成小寫字母

SELECT LOWER('RUNOOB');
---- 返回runoob
9、UCASE(s)/UPPER(s )將字串s 的所有字母變成大寫字母

SELECT UCASE('runoob');
---- 返回RUNOOB
10、TRIM(s)去掉字串s 開始和結尾處的空格

SELECT TRIM('    RUNOOB    ');
---- 返回RUNOOB
11、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个 字符,返回UNO
14、SUBSTR/ SUBSTRING(s, start, length)從字串s 的start 位置截取長度為length 的子字串

SELECT SUBSTR/SUBSTRING("RUNOOB", 2, 3);
---- 从字符串 RUNOOB 中的第 2 个位置截取 3个 字符,返回UNO
15、POSITION(s1 IN s)從字串s 中獲取s1 的起始位置

SELECT POSITION('b' in 'abc');
---- 返回2
16、REPEAT(s,n)將字串s 重複n 次

SELECT REPEAT('runoob',3);
---- 返回runoobrunoobrunoob
17、REVERSE(s )將字串s的順序反過來

SELECT REVERSE('abc');
---- 返回cba
18、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-19
2、CURRENT_TIME()/CURTIME()傳回目前時間

SELECT CURRENT_TIME();
---- 返回11:40:45
3、CURRENT_TIMESTAMP()傳回目前日期和時間

SELECT CURRENT_TIMESTAMP();
---- 返回2019-02-19 11:41:32
4、ADDDATE(d,n)計算起始日期d 加上n 天的日期

SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);
---- 返回2017-06-25
5、ADDTIME(t, n)時間t 加上n 秒的時間

SELECT ADDTIME('2011-11-11 11:11:11', 5);
---- 返回2011-11-11 11:11:16
6、DATE()從日期或日期時間表達式中提取日期值

SELECT DATE("2017-06-15 11:11:16");
---- 返回2017-06-15
7、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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除