MySQL中常见函数

时间:2022-02-05 03:36:51

一、日期函数

1、NOW()   返回当前日期和时间

mysql> SELECT NOW();
 --------------------- 
| NOW()               |
 --------------------- 
| 2019-10-19 10:55:28 |
 --------------------- 
1 row in set (0.00 sec)

2、DATE_FORMAT(d,f)   按表达式 f的要求显示日期 d

mysql> SELECT DATE_FORMAT(NOW(),%Y年-%m月-%d日 %H时:%i分:%s秒);
 ---------------------------------------------------- 
| DATE_FORMAT(NOW(),%Y年-%m月-%d日 %H时:%i分:%s秒) |
 ---------------------------------------------------- 
| 2019年-10月-19日 11时:03分:01秒                    |
 ---------------------------------------------------- 
1 row in set (0.00 sec)

3、DATE_ADD(d,INTERVAL expr type)   计算起始日期 d 加上一个时间段后的日期

mysql> SELECT DATE_ADD(NOW(),INTERVAL 1 DAY); 
 -------------------------------- 
| DATE_ADD(NOW(),INTERVAL 1 DAY) |
 -------------------------------- 
| 2019-10-20 11:07:47            |
 -------------------------------- 
1 row in set (0.00 sec)

注意:expr:正数(加)、负数(减)
          unit:支持毫秒microsecond、秒second、小时hour、天day、周week、年year

二、字符串函数

1、CONCAT(s1,s2...sn)   字符串 s1,s2 等多个字符串合并为一个字符串

mysql> SELECT CONCAT(My,SQL);
 -------------------- 
| CONCAT(My,SQL) |
 -------------------- 
| MySQL              |
 -------------------- 
1 row in set (0.00 sec)

2、FIELD(s,s1,s2...)   返回第一个字符串 s 在字符串列表(s1,s2...)中的位置

mysql> SELECT FIELD(C,A,B,C,D);
 ---------------------------- 
| FIELD(C,A,B,C,D) |
 ---------------------------- 
|                          3 |
 ---------------------------- 
1 row in set (0.00 sec)

3、LOWER(s)   将字符串 s 的所有字母变成小写字母

mysql> SELECT LOWER(ABCD);
 --------------- 
| LOWER(ABCD) |
 --------------- 
| abcd          |
 --------------- 
1 row in set (0.00 sec)

4、REVERSE(s)  将字符串s的顺序反过来

mysql> SELECT REVERSE(ABCD);
 ----------------- 
| REVERSE(ABCD) |
 ----------------- 
| DCBA            |
 ----------------- 
1 row in set (0.00 sec)

三、数字函数

1、ABS(x)   返回 x 的绝对值

mysql> SELECT ABS(-10);
 ---------- 
| ABS(-10) |
 ---------- 
|       10 |
 ---------- 
1 row in set (0.00 sec)

2、ROUND(x)  返回离 x 最近的整数

mysql> SELECT ROUND(1.2345);
 --------------- 
| ROUND(1.2345) |
 --------------- 
|             1 |
 --------------- 
1 row in set (0.00 sec)

3、RAND()  返回 0 到 1 的随机数

mysql> SELECT RAND();
 -------------------- 
| RAND()             |
 -------------------- 
| 0.5442781900468079 |
 -------------------- 
1 row in set (0.00 sec)

4、POW(x,y)  返回 x 的 y 次方

mysql> SELECT POW(4,2);  #4的2次方  ---------- 
| POW(4,2) |
 ---------- 
|       16 |
 ---------- 
1 row in set (0.00 sec)

四、聚合函数

1、AVG(expression)   返回一个表达式的平均值,expression 是一个字段

#返回 Products 表中Price 字段的平均值
mysql> SELECT AVG(price) AS AveragePrice FROM Products; 

2、COUNT(expression)   返回查询的记录总数,expression 参数是一个字段或者 * 号

#返回 Products 表中 products 字段总共有多少条记录:
mysql> SELECT COUNT(id) AS NumberOfProducts FROM Products;

3、MAX(expression)   返回字段 expression 中的最大值

#返回数据表 Products 中字段 Price 的最大值:
mysql> SELECT MAX(Price) AS LargestPrice FROM Products;

4、MIN(expression)   返回字段 expression 中的最小值

#返回数据表 Products 中字段 Price 的最小值:
mysql> SELECT MIN(Price) AS SmalltPrice FROM Products;

5、SUM(expression)  返回指定字段的总和

#计算 Products表中字段 Cost的总和:
mysql> SELECT SUM(Cost) AS TotalCost FROM Products;

6、group_concat(expression) 返回指定字段内容的拼接

mysql> SELECT GROUP_CONCAT(name) from crm_product;
 ----------------------- 
| GROUP_CONCAT(name)    |
 ----------------------- 
| 磷酸铁锂电池,叠片电池 |
 ----------------------- 
1 row in set (0.00 sec)