Mysql函数大全,一键收藏了!

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Mysql函数大全,一键收藏了!

一、单行函数



1. 字符函数


函数 功能
CONCAT 拼接字符串
UPPER 变大写
LOWER 变小写
SUBSTR、SUBSTRING 截取指定长度字符串
INSTR 返回子串第一次出现的索引,如果找不到返回0
TRIM 去掉前后缀
LENGTH 返回字符串的长度
LPAD 左填充指定长度
RPAD 右填充指定长度
REVERSE 字符串反转
REPLACE 字符串替换
REPEAT 将字符重复指定次数后返回


  1. CONCAT:拼接字符串


mysql> select concat(username,' love simth') from employee;
+--------------------------------+
| concat(username,' love simth') |
+--------------------------------+
| john love simth                |
+--------------------------------+
1 row in set (0.00 sec)


  1. UPPER:变大写


mysql> select upper(username) from employee;
+-----------------+
| upper(username) |
+-----------------+
| JOHN            |
+-----------------+
1 row in set (0.00 sec)


  1. LOWER:变小写


mysql> select lower(username) from employee;
+-----------------+
| lower(username) |
+-----------------+
| john            |
+-----------------+
1 row in set (0.00 sec)


  1. SUBSTR、SUBSTRING:字符串截取


// 参数1:需要截取的字符串,参数2:开始截取的位置(从1开始),参数3:截取的长度
mysql> select substr(username,1,2) from employee;
+----------------------+
| substr(username,1,2) |
+----------------------+
| jo                   |
+----------------------+
1 row in set (0.00 sec)
mysql> select substr(username,2) from employee;
+--------------------+
| substr(username,2) |
+--------------------+
| ohn                |
+--------------------+
1 row in set (0.00 sec)


  1. INSTR:返回子串第一次出现的索引,如果找不到返回0


mysql> select instr(username,'h') from employee;
+---------------------+
| instr(username,'h') |
+---------------------+
|                   3 |
+---------------------+
1 row in set (0.00 sec)


  1. TRIM:去掉前后缀


mysql> select trim('            aaaaaaaaaa             ');
+---------------------------------------------+
| trim('            aaaaaaaaaa             ') |
+---------------------------------------------+
| aaaaaaaaaa                                  |
+---------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim('a' from 'aaaaaaaaaaaaaaaaaaaI am Jhonaaaaaaaaaaaaaaaaaaaaaaaa');
+-----------------------------------------------------------------------+
| trim('a' from 'aaaaaaaaaaaaaaaaaaaI am Jhonaaaaaaaaaaaaaaaaaaaaaaaa') |
+-----------------------------------------------------------------------+
| I am Jhon                                                             |
+-----------------------------------------------------------------------+
1 row in set (0.00 sec)


  1. LENGTH:返回字符串的长度


mysql> select length('abcdefgh');
+--------------------+
| length('abcdefgh') |
+--------------------+
|                  8 |
+--------------------+
1 row in set (0.00 sec)


  1. LPAD:左填充指定长度


mysql> select lpad('abcdefgh',10,'*');
+-------------------------+
| lpad('abcdefgh',10,'*') |
+-------------------------+
| **abcdefgh              |
+-------------------------+
1 row in set (0.00 sec)


  1. RPAD:右填充指定长度


mysql> select rpad('abcdefgh',10,'*');
+-------------------------+
| rpad('abcdefgh',10,'*') |
+-------------------------+
| abcdefgh**              |
+-------------------------+
1 row in set (0.00 sec)


  1. REVERSE:字符串反转


mysql> select reverse('abcdefgh');
+---------------------+
| reverse('abcdefgh') |
+---------------------+
| hgfedcba            |
+---------------------+
1 row in set (0.00 sec)


  1. REPLACE:字符串替换


mysql> select replace('***I*** am*** Jhon******','*','');
+--------------------------------------------+
| replace('***I*** am*** Jhon******','*','') |
+--------------------------------------------+
| I am Jhon                                  |
+--------------------------------------------+
1 row in set (0.00 sec)


  1. REPEAT:将字符重复指定次数后返回


mysql> select repeat('haha',3);
+------------------+
| repeat('haha',3) |
+------------------+
| hahahahahaha     |
+------------------+
1 row in set (0.00 sec)


2. 数学函数


函数 功能
ROUND 四舍五入
CEIL 向上取整
FLOOR 向下取整
TRUNCATE 截断
MOD 取余


  1. ROUND:四舍五入


mysql> select round(4.5);
+------------+
| round(4.5) |
+------------+
|          5 |
+------------+
1 row in set (0.00 sec)
mysql> select round(4.56231,2);
+------------------+
| round(4.56231,2) |
+------------------+
|             4.56 |
+------------------+
1 row in set (0.00 sec)


  1. CEIL:向上取整


mysql> select ceil(4.2);
+-----------+
| ceil(4.2) |
+-----------+
|         5 |
+-----------+
1 row in set (0.00 sec)


  1. FLOOR:向下取整


mysql> select floor(4.9);
+------------+
| floor(4.9) |
+------------+
|          4 |
+------------+
1 row in set (0.00 sec)


  1. TRUNCATE:截断


mysql> select truncate(4.9879,2);
+--------------------+
| truncate(4.9879,2) |
+--------------------+
|               4.98 |
+--------------------+
1 row in set (0.00 sec)


  1. MOD:取余


公式:余值=a-a/b*b


mysql> select truncate(4.9879,2);
+--------------------+
| truncate(4.9879,2) |
+--------------------+
|               4.98 |
+--------------------+
1 row in set (0.00 sec)


3. 日期函数


函数 功能
NOW 返回当前系统日期和时间
CURDATE 返回当前系统日期
CURTIME 返回当前系统时间
YEAR 返回年
MONTH 返回月
MONTHNAME 返回英文月份
DAY 返回日
HOUR 返回小时
MINUTE 返回分
SECOND 发挥秒
STR_TO_DATE 将字符串转化为时间
DATE_FORMAT 将日期转换为字符


  1. NOW:返回当前系统时间和日期


mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2020-07-04 13:58:46 |
+---------------------+
1 row in set (0.00 sec)


  1. CURDATE & CURTIME:分别返回当前日期和时间


mysql> select curdate(),curtime();
+------------+-----------+
| curdate()  | curtime() |
+------------+-----------+
| 2020-07-04 | 14:02:49  |
+------------+-----------+
1 row in set (0.00 sec)


  1. YEAR & MONTH & DAY:分别返回年月日


mysql> select year(now()),month(now()),monthName(now()),day(now());
+-------------+--------------+------------------+------------+
| year(now()) | month(now()) | monthName(now()) | day(now()) |
+-------------+--------------+------------------+------------+
|        2020 |            7 | July             |          4 |
+-------------+--------------+------------------+------------+
1 row in set (0.28 sec)


  1. HOUR & MINUTE & SECOND:分别返回时分秒


mysql> select hour(now()),minute(now()),second(now());
+-------------+---------------+---------------+
| hour(now()) | minute(now()) | second(now()) |
+-------------+---------------+---------------+
|          14 |             5 |            30 |
+-------------+---------------+---------------+
1 row in set (0.00 sec)


  1. STR_TO_DATE:将字符串转化为时间


mysql> select str_to_date('04-25-2018','%m-%d-%Y');
+--------------------------------------+
| str_to_date('04-25-2018','%m-%d-%Y') |
+--------------------------------------+
| 2018-04-25                           |
+--------------------------------------+
1 row in set (0.00 sec)


  1. DATE_FORMAT:将日期转化为字符串


mysql> select date_format(now(),'%m-%d-%Y');
+-------------------------------+
| date_format(now(),'%m-%d-%Y') |
+-------------------------------+
| 07-04-2020                    |
+-------------------------------+
1 row in set (0.00 sec)


补充:


序号 格式 功能
1 %Y 四位的年份
2 %y 两位的年份
3 %m 月份(01,02,03...)
4 %d 日(01,02,03...)
5 %H 小时(24小时制)
6 %h 小时(12小时制)
7 %i 分(00,01,...,59)
8 %s 秒(00,01,...,59)
9 %c 月(1,2...12)


4. 流程控制函数


  1. IF:条件函数
mysql> select date_format(now(),'%m-%d-%Y');
+-------------------------------+
| date_format(now(),'%m-%d-%Y') |
+-------------------------------+
| 07-04-2020                    |
+-------------------------------+
1 row in set (0.00 sec)


  1. CASE:条件函数
  1. 用法一(相当于java的switch...case):
mysql> select id,
    -> case id
    -> when 1 then 'one'
    -> when 2 then 'two'
    -> when 3 then 'three'
    -> else 'others'
    -> end
    -> from employee;
+----+-----------------------------------------------------------------------------------+
| id | case id
when 1 then 'one'
when 2 then 'two'
when 3 then 'three'
else 'others'
end |
+----+-----------------------------------------------------------------------------------+
|  1 | one                                                                               |
+----+-----------------------------------------------------------------------------------+
1 row in set (0.00 sec)
2. 用法二(相当于java的if...else if...else...):
mysql> select username, 
    -> case
    -> when salary>20000 then 'a'
    -> when salary>10000 then 'b'
    -> else 'c'
    -> end
    -> from employee;
+----------+-------------------------------------------------------------------------+
| username | case
when salary>20000 then 'a'
when salary>10000 then 'b'
else 'c'
end |
+----------+-------------------------------------------------------------------------+
| john     | b                                                                       |
+----------+-------------------------------------------------------------------------+
1 row in set (0.29 sec)


  1. ifnull:如果为空
mysql> select ifnull(username,'a')  from employee;
+----------------------+
| ifnull(username,'a') |
+----------------------+
| john                 |
+----------------------+
1 row in set (0.00 sec)


5. 其它函数


  1. version:查询数据库版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.20    |
+-----------+
1 row in set (0.00 sec)


  1. database:查询当前数据库
mysql> select database();
+------------+
| database() |
+------------+
| db         |
+------------+
1 row in set (0.00 sec)


  1. user:当前用户
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)


二、聚合函数



  1. SUM:求和
mysql> select sum(id) from employee;
+---------+
| sum(id) |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)


  1. AVG:平均值
mysql> select avg(id) from employee;
+---------+
| avg(id) |
+---------+
|  1.0000 |
+---------+
1 row in set (0.30 sec)


  1. MIN:最小值
mysql> select min(id) from employee;
+---------+
| min(id) |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)


  1. MAX:最大值
mysql> select max(id) from employee;
+---------+
| max(id) |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)


  1. COUNT:总数
mysql> select count(id) from employee;
+-----------+
| count(id) |
+-----------+
|         1 |
+-----------+
1 row in set (0.05 sec)


聚合函数小总结

  1. avg和sum一般用于处理数据值类型
  2. max,min,count可以处理任何数据类型
  3. 可以和distinct搭配实现去重
  4. count函数一般用count(*),效率更高
  5. 和分组函数一起使用的字段是group by后的字段


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
93 1
Mysql(5)—函数
|
2天前
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
18天前
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
59 7
|
20天前
|
关系型数据库 MySQL
MySQL常见函数第一期,你都用过哪些呢 ?
本期介绍10个常用的MySQL函数:字符串连接(CONCAT)、提取子字符串(SUBSTRING)、获取字符串长度(LENGTH)、转换大小写(UPPER、LOWER)、去除空格(TRIM)、替换字符串(REPLACE)、查找子字符串位置(INSTR)、带分隔符的字符串连接(CONCAT_WS)以及获取当前日期时间(NOW)。
56 8
|
21天前
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
26天前
|
关系型数据库 MySQL 数据处理
【MySQL】函数
MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。
28 3
|
28天前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
31 1
|
1月前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
37 1
|
2月前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
MySQL 存储函数及调用
205 3
|
1月前
|
SQL NoSQL 关系型数据库