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

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 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后的字段


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
413 1
Mysql(5)—函数
|
11月前
|
SQL 关系型数据库 MySQL
MySQL 常用函数
我们这次全面梳理 MySQL 中的常用函数,涵盖 聚合函数、字符串函数、日期时间函数、数学函数 和 控制流函数 等五大类。每类函数均配有语法说明与实用示例,帮助读者提升数据处理能力,如统计分析、文本处理、日期计算、条件判断等。文章结尾提供了丰富的实战练习,帮助读者巩固和应用函数技巧,是进阶 SQL 编程与数据分析的实用工具手册。
790 2
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
|
SQL 关系型数据库 MySQL
Mysql-常用函数及其用法总结
以上列举了MySQL中一些常用的函数及其用法。这些函数在日常的数据库操作中非常实用,能够简化数据查询和处理过程,提高开发效率。掌握这些函数的使用方法,可以更高效地处理和分析数据。
420 19
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
本文来自YashanDB官网,介绍将MySQL的FIELD函数改写到YashanDB的方法。MySQL中,FIELD函数用于自定义排序;而在YashanDB中,可使用DECODE或CASE语句实现类似功能。示例展示对表`t1`按指定顺序排序的过程,提供两种改写方式,结果均符合预期。
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
关系型数据库 MySQL
MySQL常见函数第一期,你都用过哪些呢 ?
本期介绍10个常用的MySQL函数:字符串连接(CONCAT)、提取子字符串(SUBSTRING)、获取字符串长度(LENGTH)、转换大小写(UPPER、LOWER)、去除空格(TRIM)、替换字符串(REPLACE)、查找子字符串位置(INSTR)、带分隔符的字符串连接(CONCAT_WS)以及获取当前日期时间(NOW)。
380 8
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
386 7
|
关系型数据库 MySQL 数据处理
【MySQL】函数
MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。
322 3

推荐镜像

更多