当前位置: 首页 > news >正文

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());   。
 
2. 日期计算
 
- 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;  ,能按指定格式拼接学生成绩信息 。
 
2. 进阶处理
 
- 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 函数,能大幅提升数据处理效率,无论是简单的时间获取、字符串拼接,还是复杂的数值计算、空值处理,都可借助函数轻松实现。在实际开发中,灵活组合运用函数,让数据库操作更高效、更贴合业务需求!

http://www.dtcms.com/a/356556.html

相关文章:

  • Python 【深度解析】线程与进程:操作系统中多任务的核心机制
  • WebRTC音频QoS方法五(音频变速算法之Expand算法实现)
  • Nodejs介绍
  • FreeRTOS基础知识记录
  • MTK Linux DRM分析(二十)- KMS drm_mm.c drm_vma_manager.c
  • Docker部署单节点使用KRaft存储数据的Kafka与可视化界面Kafka-Map
  • el-table合并列实例
  • 云市场周报 (2025.08.29):解读阿里云g8y、腾讯云Serverless容器与FinOps趋势
  • 神经语言学与脑科学启发的NLP深层分析:从统计拟合到机制理解的范式转变
  • LeetCode 317 离建筑物最近的距离
  • Spring Boot 整合 MongoDB:CRUD 与聚合查询实战
  • vscode优化合集 - Visual Studio Code
  • TensorFlow 面试题及详细答案 120道(51-60)-- 模型保存、加载与部署
  • 字典解密助手ArchiveHelperWpfv1.0.12详细使用说明书
  • [awesome-nlp] docs | 精选NLP资源 | 分类
  • DVWA靶场通关笔记-暴力破解(Impossible级别)
  • Spring框架集成Kakfa的方式
  • 网络与信息安全有哪些岗位:(12)威胁分析师
  • LeetCode算法日记 - Day 25: 数组中的第K个最大元素、库存管理III
  • Docker的常用命令及简单使用
  • More Effective C++ 条款15:了解异常处理(exception handling)的成本
  • 判断语句中std::cin隐式转换为bool--重载operator bool()
  • Point Transformer V3(PTv3)【3:上采样unpooling】
  • 【C++详解】C++11(一) 列表初始化、右值引⽤和移动语义
  • 【查看css技巧】hover或者其他方式触发出来的样式如何查看
  • Linux网络基础1(一)之计算机网络背景
  • Java常用工具类
  • python 日常学习记录
  • rust打包增加图标
  • 中国国际商会副秘书长徐梁一行到访国联股份