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

相关推荐
WeiQ_3 小时前
解决phpstudy 8.x软件中php8.2.9没有redis扩展的问题
数据库·redis·缓存
DashVector7 小时前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
KYGALYX8 小时前
在Linux中备份msyql数据库和表的详细操作
linux·运维·数据库
檀越剑指大厂8 小时前
金仓KReplay:定义数据库平滑迁移新标准
数据库
努力成为一个程序猿.8 小时前
【Flink】FlinkSQL-动态表和持续查询概念
大数据·数据库·flink
毕设十刻9 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
liliangcsdn10 小时前
如何利用约束提示优化LLM在问题转sql的一致性
数据库·sql
熙客10 小时前
Kubernetes是如何保证有状态应用数据安全和快速恢复的
mysql·云原生·容器·kubernetes
Java爱好狂.11 小时前
分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
java·数据库·分布式·分布式id·es·java面试·java程序员