16. MySQL常用函数-字符串函数-数字函数-日期函数-高级函数

1. 字符串函数

 

函数

描述

实例

CHAR_LENGTH(s)

返回字符串 s 的字符数

SELECT CHAR_LENGTH('lijw') AS '长度';

CONCAT(s1,s2...sn)

字符串 s1,s2 等多个字符串合并为一个字符串

SELECT CONCAT('Happy','niu','year');

LOWER(s)

将字符串 s 的所有字母变成小写字母

SELECT LOWER('HAPPY NIU YEAR');

UPPER(s)

将字符串转换为大写

SELECT UPPER("happy niu year");

SUBSTR(s,  start,length)

从字符串 s 的 start 位置截取长度为 length 的子字符串

SELECT SUBSTR("Happy niu year",1,2);

TRIM(s)

去掉字符串 s 开始和结尾处的空格

SELECT TRIM(' Happy niu year ')

示例:

-- 返回字符串的字符数
mysql> SELECT CHAR_LENGTH('lijw') AS '长度';
+--------+
| 长度 |
+--------+
| 4 |
+--------+
1 row in set (0.00 sec)


-- 字符串 s1,s2 等多个字符串合并为一个字符串
mysql> SELECT CONCAT('Happy','niu','year');
+------------------------------+
| CONCAT('Happy','niu','year') |
+------------------------------+
| Happyniuyear |
+------------------------------+
1 row in set (0.00 sec)

-- 将字符串 s 的所有字母变成小写字母
mysql> SELECT LOWER('HAPPY NIU YEAR');
+-------------------------+
| LOWER('HAPPY NIU YEAR') |
+-------------------------+
| happy niu year |
+-------------------------+
1 row in set (0.00 sec)

-- 将字符串转换为大写
mysql> SELECT UPPER("happy niu year");
+-------------------------+
| UPPER("happy niu year") |
+-------------------------+
| HAPPY NIU YEAR |
+-------------------------+
1 row in set (0.00 sec)

-- 从字符串 s start 位置截取长度为 length 的子字符串
mysql> SELECT SUBSTR("Happy niu year",1,2);
+------------------------------+
| SUBSTR("Happy niu year",1,2) |
+------------------------------+
| Ha |
+------------------------------+
1 row in set (0.00 sec)

-- 去掉字符串 s 开始和结尾处的空格
mysql> SELECT TRIM(' Happy niu year ');
+--------------------------+
| TRIM(' Happy niu year ') |
+--------------------------+
| Happy niu year |
+--------------------------+
1 row in set (0.00 sec)

mysql>

2. 数字函数

 

函数

描述

实例

RAND()

返回 0 到 1 的随机数

SELECT RAND();

ROUND(小 小数 数, 保留 几位 位)

四舍五入保留几位小数

SELECT ROUND(3.1415926,2) ;

LEAST(expr1, expr2, expr3, ...)

返回列表中的最小值

SELECT LEAST(13, 14, 521, 74, 1)

GREATEST(expr1,  expr2,expr3, ...)

返回列表中的最大值

SELECT GREATEST(13, 14, 521, 74, 1)

示例:

-- 返回0-1之间的随机数 
mysql> SELECT RAND();
+--------------------+
| RAND() |
+--------------------+
| 0.5957162041177193 |
+--------------------+
1 row in set (0.00 sec)

mysql>


-- 四舍五入保留几位小数
mysql> SELECT ROUND(3.1415926,2);
+--------------------+
| ROUND(3.1415926,2) |
+--------------------+
| 3.14 |
+--------------------+
1 row in set (0.00 sec)


-- 返回列表中的最小值
mysql> SELECT LEAST(13, 14, 521, 74, 1);
+---------------------------+
| LEAST(13, 14, 521, 74, 1) |
+---------------------------+
| 1 |
+---------------------------+
1 row in set (0.00 sec)


-- 返回列表中的最大值
mysql> SELECT GREATEST(13, 14, 521, 74, 1);
+------------------------------+
| GREATEST(13, 14, 521, 74, 1) |
+------------------------------+
| 521 |
+------------------------------+
1 row in set (0.00 sec)

3. 日期函数

 

函数名

描述

实例

NOW() 和 SYSDATE()

返回系统的当前日期和时间

SELECT NOW(); 或 SELECT SYSDATE();

CURDATE()

返回当前日期

SELECT CURDATE();

CURTIME()

返回当前系统时间

SELECT CURTIME();

YEAR(d)

返回d的中的年份

SELECT YEAR(NOW());

MONTH(d)

返回d的中的月份

SELECT MONTH(NOW());

DAY(d)

返回d中的日

SELECT DAY(NOW());

示例:

-- 返回系统的当前时间: -- :: 
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2021-02-12 09:47:12 |
+---------------------+
1 row in set (0.00 sec)

mysql> SELECT SYSDATE();
+---------------------+
| SYSDATE() |
+---------------------+
| 2021-02-12 09:47:22 |
+---------------------+
1 row in set (0.00 sec)

-- 返回系统当前日期: --
mysql> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2021-02-12 |
+------------+
1 row in set (0.00 sec)

-- 返回系统当前时间: ::
mysql> SELECT CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 09:47:54 |
+-----------+
1 row in set (0.00 sec)

-- 返回当前日期中的年份
mysql> SELECT YEAR(NOW());
+-------------+
| YEAR(NOW()) |
+-------------+
| 2021 |
+-------------+
1 row in set (0.00 sec)

mysql>

-- 返回当前日期中的月份
mysql> SELECT MONTH(NOW());
+--------------+
| MONTH(NOW()) |
+--------------+
| 2 |
+--------------+
1 row in set (0.00 sec)

-- 返回当前日期中的日
mysql> SELECT DAY(NOW());
+------------+
| DAY(NOW()) |
+------------+
| 12 |
+------------+
1 row in set (0.01 sec)

4. 高级函数

 

函数名

描述

实例

CURRENT_USER()

返回当前用户

SELECT CURRENT_USER();

IFNULL(v1,v2)

如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。

SELECT IFNULL(null,'Hello Word')

ISNULL(expression)

判断表达式是否为 NULL

SELECT ISNULL(NULL);

示例:

-- 返回当前用户
mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

-- 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
mysql> SELECT IFNULL(null,'Hello Word');
+---------------------------+
| IFNULL(null,'Hello Word') |
+---------------------------+
| Hello Word |
+---------------------------+
1 row in set (0.00 sec)

-- 判断表达式是否为 NULL
mysql> SELECT ISNULL(NULL);
+--------------+
| ISNULL(NULL) |
+--------------+
| 1 |
+--------------+
1 row in set (0.00 sec)