游乐游手机版
首页/数据库/文章详情

一文完整详解MySQL数据库所有必备常用内置函数

时间:2026-07-10 06:51
MySQL常用内置函数分日期(now、date_add)、字符串(concat、replace、substring)、数学(ceiling、floor)及其他(user、md5、ifnull)类别,分别用于时间操作、文本处理、数值取整及用户、加密、空值判断等场景。

在上一篇文章中,我们全面解析了MySQL的基本查询操作,内容较为充实。今天这一篇将聚焦于MySQL内置函数——梳理那些最常用的日期函数、字符串函数、数学函数以及辅助函数,通过实际案例帮助大家快速掌握它们的用法。下面直接进入主题。

一. MySQL日期函数详解

一文吃透MySQL必备的常用内置函数

上表汇总了MySQL中常见的日期函数,根据函数描述能清楚了解各自功能。接下来通过具体示例演示这些日期函数的实际应用。

1.1 创建一张表记录生日

一文吃透MySQL必备的常用内置函数

一文吃透MySQL必备的常用内置函数

首先创建一张用于记录生日的表,插入数据时直接调用日期函数获取当前时间。上述示例使用了三个日期函数获取当前时间,由于 birthday 字段类型为 date,最终只保留了日期部分,时间部分自动截掉。从结果可以直观看到日期的标准格式,同理也可以获取具体时间。

1.2 创建一张留言表

一文吃透MySQL必备的常用内置函数

一文吃透MySQL必备的常用内置函数

一文吃透MySQL必备的常用内置函数

在这个例子中,可以使用 now()current_timestamp 来记录留言时的具体时间,两者都能获取当前时间戳。接下来可以进一步扩展操作:

1.2.1 显示所有留言信息,发布日期只显示日期,不显示时间

这里需要用到 date() 函数,将日期部分单独提取出来:

一文吃透MySQL必备的常用内置函数

通过 date() 函数成功过滤掉时间部分,只保留日期。

1.2.2 查询在2分钟内发布的帖子

先理清逻辑:两分钟之内发布的数据需要满足 sendtime + 2分钟 > 当前时间 或者 当前时间 - 2分钟 < sendtime。下面进行实操:

一文吃透MySQL必备的常用内置函数

先插入一条新数据,然后通过 where 条件筛选,条件中使用 date_adddate_sub 进行时间加减运算,时间单位设置为分钟(minute)。从查询结果看,只有刚插入的那条数据符合条件,验证了逻辑的正确性。

二. MySQL字符串函数实战

一文吃透MySQL必备的常用内置函数

上述表格列出MySQL中常见的字符串函数,部分函数名称与C/C++中的函数相同,功能也类似。下面通过几个典型案例进行说明:

2.1 获取emp表的ename列的字符集

一文吃透MySQL必备的常用内置函数

使用 charset() 函数可以查看指定字段的字符集,默认字符集为utf8,因此查询结果也显示为utf8。

2.2 显示exam_result表中的信息,格式为“xxx的语文是xx分,数学xx分,英语xx分”

一文吃透MySQL必备的常用内置函数

这里利用 concat() 函数进行字符串拼接,将各科成绩按指定格式组合在一起。操作简单,不再赘述。

2.3 求学生表中学生姓名占用的字节数

一文吃透MySQL必备的常用内置函数

使用 length() 函数计算每个姓名占用的字节数。如前所述,在utf8字符集下,一个汉字占用3个字节,因此三个字的姓名占用9个字节,两个字的姓名占用6个字节。若为字母或数字,则每个占用1个字节。

2.4 将EMP表中所有名字里的“S”替换成“上海”

一文吃透MySQL必备的常用内置函数

使用 replace() 函数,第二个参数指定被替换的字符,第三个参数指定替换后的内容。从结果可以看出,每个姓名中的“S”都被成功替换为“上海”。

一文吃透MySQL必备的常用内置函数

需要注意的是,此操作仅影响查询结果显示,并未实际修改表中数据,ename 字段的值保持不变。

2.5 截取EMP表中ename字段的第二个到第三个字符

一文吃透MySQL必备的常用内置函数

这里使用 substring() 函数。为便于对比,同时打印完整的 ename 字段。截取结果正确无误。注意下标从1开始(而非0),因此第二个字符对应下标2。

2.6 以首字母小写的方式显示所有员工的姓名

一文吃透MySQL必备的常用内置函数

此操作稍显复杂,不能直接使用 lcase() 仅改变首字母而保持其他字母不变。正确做法是将首字母与剩余部分拆分,单独处理首字母后,再用 concat() 函数拼接回去。

三. MySQL数学函数应用

一文吃透MySQL必备的常用内置函数

大部分数学函数在C/C++中已有接触,这里重点讲解 ceiling()floor() 两个函数——分别是向上取整和向下取整。

3.1 ceiling函数(向上取整)

向上取整表示取大于或等于当前值的最小整数。来看具体示例:

一文吃透MySQL必备的常用内置函数

若数值为3.1或3.9,向上取整后结果为4;若为负数(如-3.1、-3.9),向上取整后则变为-3。无论正负,结果总是不小于原值。

一文吃透MySQL必备的常用内置函数

上述查询结果完全印证了这一规律。

3.2 floor函数(向下取整)

向下取整与向上取整相反,取小于或等于当前值的最大整数:

一文吃透MySQL必备的常用内置函数

3.1或3.9向下取整后为3;-3.1、-3.9向下取整后为-4。结果总是不大于原值。

一文吃透MySQL必备的常用内置函数

同样通过示例验证,结果完全符合预期。

四. MySQL其他实用函数

最后再介绍几个常用辅助函数:

一文吃透MySQL必备的常用内置函数

第一个是 user(),用于查询当前数据库用户。

一文吃透MySQL必备的常用内置函数

第二个是 md5(),对字符串进行MD5摘要运算,生成一个32位长度的字符串。

一文吃透MySQL必备的常用内置函数

第三个是 ifnull(),若第一个参数为 null,则返回第二个参数的值;否则返回第一个参数本身。

以上就是本文对MySQL常用内置函数——日期函数、字符串函数、数学函数及其他函数的全面解析与实战演示。

来源:https://www.jb51.net/database/366855ink.htm
上一篇MySQL批量修改所有表字符集与校对规则教程 下一篇Qwen大模型如何为MySQL复杂查询生成模拟性能压测数据
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Hive row_number()函数常见应用场景解析
数据库 · 2026-07-10

Hive row_number()函数常见应用场景解析

row_number()窗口函数为数据集分配唯一连续序号,适用于添加序号、分组排名、数据筛选及数据转换等场景。使用时需通过OVER子句指定排序顺序,且排序值相同时序号仍唯一。该函数在数据分析和报表生成中应用广泛,能实现分页、去重等需求。

Hive中row_number()函数如何处理空值
数据库 · 2026-07-10

Hive中row_number()函数如何处理空值

Hive的row_number()函数排序时,空值默认在升序中排在最后,降序中排最前。通过添加NULLSFIRST或NULLSLAST修饰符,可灵活控制空值位置,从而精确调整序号分配,满足业务逻辑需求。

Hive Metastore 表分裂处理机制详解
数据库 · 2026-07-10

Hive Metastore 表分裂处理机制详解

HiveMetastore负责元数据管理,处理表分裂时需同步更新元数据:定义分裂策略后,触发分裂动作,在TBLS表中创建子分区条目,更新父表信息并调整存储目录。数据迁移由查询引擎负责,Metastore确保元数据与物理位置一致,完成后可查询新分区。

Kafka协调器内部处理主题创建的完整流程
数据库 · 2026-07-10

Kafka协调器内部处理主题创建的完整流程

协调器接收客户端创建主题请求后,先验证主题名、分区数和副本因子,通过后写入元数据存储,进而执行分区副本分配以分散于不同Broker,再将方案广播同步至所有节点,最后返回结果。整个过程为异步操作,支持动态创建。

Databend在AWS中国峰会展示Agent数据基础设施新思路
数据库 · 2026-07-10

Databend在AWS中国峰会展示Agent数据基础设施新思路

6月24日,上海世博中心迎来了年度AWS中国峰会,本届主题定为「Agentic Now, Go Build」。 逛展最大的感受是,如今业界已不再执着于比拼模型参数、排行榜或谁家的模型更聪明。无论是Keynote演讲还是展区交流,讨论最密集的话题其实是Agent如何真正落地生产环境。 过去一年,大模型