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)