MySQL-内置函数

目录

[一、日期函数 ​编辑](#一、日期函数 编辑)

[二、字符串函数 ​编辑](#二、字符串函数 编辑)

[三、数学函数 ​编辑](#三、数学函数 编辑)

四、其它函数


在数据库操作中,函数是提升数据处理效率与灵活性的关键工具。MySQL 提供了丰富的函数,涵盖日期处理、字符串操作、数学计算等多个场景。本文将结合实际案例,深入讲解常用函数的用法,助力大家高效处理数据。

一、日期函数

日期处理在业务开发中极为常见,MySQL 的日期函数可轻松获取、计算时间信息。

  1. 获取时间信息

- current_date(): 获取当前日期,格式如 2025-08-29 ,用于记录生日表(如 tmp 表)的日期数据插入,语句 insert into tmp(birthday) values(current_date()); 能便捷录入当前日期 。
- current_time(): 获取当前时间,像 11:49:00 这样的时分秒形式,适合关注时间点的场景 。
- current_timestamp(): 获取当前时间戳,包含日期和时间,如 2025-08-29 11:49:00 ,留言表 msg 插入数据时用 now() (效果类似)记录发送时间,语句 insert into msg(content,sendtime) values('hello1', now()); 。

  1. 日期计算

- date_add(date, interval d_value_type): 给日期添加时间间隔。例如 select date_add('2017-10-28', interval 10 day); ,能算出 2017-11-07 ,可用于会员有效期延长等场景 。
- date_sub(date, interval d_value_type): 从日期减去时间间隔,如 select date_sub('2017-10-01', interval 2 day); 得到 2017-09-29 ,适用于计算截止日期等 。
- datediff(date1, date2): 计算两个日期差值,单位为天。比如 select datediff('2017-10-10', '2016-09-01'); 得出 404 ,可用于统计活动持续天数 。

二、字符串函数

字符串函数用于处理字符内容,满足格式化、替换、截取等需求。

  1. 基础操作

- charset(str): 返回字符串字符集,如 select charset(ename) from EMP; 可查看 EMP 表 ename 列字符集 。
- concat(string2 [,...]): 连接字符串,像 select concat(name, '的语文是',chinese,'分,数学',math,'分,英语',english,'分') as '分数' from student; ,能按指定格式拼接学生成绩信息 。

  1. 进阶处理

- length(string): 获取字符串长度(按字节算),多字节字符(如中文)占多个字节, select length(name), name from student; 可统计学生姓名字节数 。
- replace(str, search_str, replace_str): 替换字符串内容, select replace(ename, 'S', '上海') ,ename from EMP; 把 EMP 表 ename 字段里的 S 换成 上海 。
- substring(str, position [,length]): 截取字符串, select substring(ename, 2, 2), ename from EMP; 截取 ename 字段第 2 到第 3 个字符,可用于提取部分字符信息 。

三、数学函数

数学函数助力数值运算,简化复杂计算流程。

  1. 常用计算

- abs(number): 求绝对值, select abs(-100.2); 得到 100.2 。
- ceiling(number): 向上取整, select ceiling(23.04); 结果为 24 。
- floor(number): 向下取整, select floor(23.7); 得出 23 。
- format(number, decimal_places): 格式化小数,保留指定位数, select format(12.3456, 2); 得到 12.35 (四舍五入) 。

四、其它函数

除上述类别,还有实用的"其它函数"。

- user(): 查询当前用户, select user(); 了解数据库当前登录用户 。

  • md5(str):对字符串做 MD5 摘要,生成 32 位字符串, select md5('admin') 可用于简单密码加密存储(实际场景建议更安全的加密方式) 。
    - database(): 显示当前使用的数据库, select database(); 快速知晓操作的数据库 。
    - ifnull(val1, val2): 处理空值, val1 为 null 则返回 val2 ,否则返回 val1 ,如 select ifnull('abc', '123'); 返回 abc , select ifnull(null, '123'); 返回 123 ,可用于数据查询时的空值替换,保证结果规整 。

掌握这些 MySQL 函数,能大幅提升数据处理效率,无论是简单的时间获取、字符串拼接,还是复杂的数值计算、空值处理,都可借助函数轻松实现。在实际开发中,灵活组合运用函数,让数据库操作更高效、更贴合业务需求!

相关推荐
流火无心2 小时前
mysql索引 底层数据结构与算法
数据结构·mysql·索引
lhxcc_fly2 小时前
Mysql系列--9、事务
数据库·mysql·事务
冰糖雪梨dd4 小时前
SQL注入
数据库·sql
XYiFfang5 小时前
【mysql】SQL 中 IS 与 = 的区别:一个 NULL 值引发的思考
数据库·sql·mysql
one year.6 小时前
MySQL表的约束
数据库·mysql
only_Klein7 小时前
mysql双机热备(主主模式)
数据库·mysql·adb
得意霄尽欢8 小时前
MySQL底层数据结构与算法浅析
数据库·mysql
叁沐8 小时前
MySQL 29 如何判断一个数据库是不是出问题了?
mysql