【MySQL数据库学习】(MySQL内置函数)


🔥承渊政道: 个人主页
❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》
✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介:

在实际的数据库开发过程中,MySQL 内置函数是提升查询效率与数据处理能力的重要工具.无论是字符串处理、数值计算,还是日期格式转换,合理使用内置函数都能让复杂的SQL语句变得更加简洁高效.本篇文章将围绕 MySQL 常用内置函数展开讲解,结合实际示例帮助你快速掌握 COUNT()SUM()AVG()DATE_FORMAT()IFNULL()SUBSTRING() 等核心函数的使用方法与应用场景.通过学习这些函数,你不仅可以提升 SQL 编写能力,还能在实际项目中更加灵活地处理数据分析与业务需求.如果你正在系统学习 MySQL,或者希望提升 SQL 实战能力,那么这篇文章将会是一个非常实用的参考指南.废话不多说,下面跟着小编的节奏🎵一起去疯狂的学习吧!

目录

1.日期函数

📅 MySQL日期函数(Date Functions)

在数据库开发中,日期和时间数据几乎无处不在,比如用户注册时间、订单创建时间、日志记录时间等.MySQL 提供了丰富的日期函数,用于对时间数据进行获取、格式化、计算与转换,从而大幅提升数据处理效率.

1️⃣获取当前日期/时间

MySQL 提供了多个获取当前时间的函数:

  • NOW():返回当前日期和时间(最常用)
  • CURDATE():返回当前日期(不包含时间)
  • CURTIME():返回当前时间(不包含日期)
sql 复制代码
SELECT NOW();
SELECT CURDATE();
SELECT CURTIME();

2️⃣日期格式化

使用 DATE_FORMAT() 可以将日期转换为指定格式,非常适合前端展示:

sql 复制代码
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

常用格式说明:

  • %Y:4位年份
  • %m:月份
  • %d:日期
  • %H:小时(24小时制)
  • %i:分钟
  • %s:秒

3️⃣日期计算

MySQL 支持对日期进行加减操作:

  • DATE_ADD():日期增加
  • DATE_SUB():日期减少
sql 复制代码
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);   -- 7天后
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); -- 1个月前

4️⃣日期差值计算

DATEDIFF() 用于计算两个日期之间的天数差:

sql 复制代码
SELECT DATEDIFF('2026-06-01', '2026-05-20');

5️⃣提取日期部分

可以从日期中提取年、月、日等信息:

sql 复制代码
SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());

📌小结

MySQL 日期函数在实际业务中非常重要,尤其是在数据统计、时间筛选、报表分析等场景中.熟练掌握这些函数,可以让你在处理时间相关数据时更加高效、灵活.

函数名称 描述
current_date() 当前日期
current_time() 当前时间
current_timestamp() 当前时间戳
date(datetime) 返回 datetime 参数的日期部分
date_add(date, interval d_value_type) 在 date 中添加日期或时间,interval 后的数值单位可以是:year、minute、second、day
date_sub(date, interval d_value_type) 在 date 中减去日期或时间,interval 后的数值单位可以是:year、minute、second、day
datediff(date1, date2) 两个日期的差,单位是天
now() 当前日期时间

获得年月日

获得时分秒

获得时间戳

在日期的基础上加日期

在日期的基础上减去时间

计算两个日期之间相差多少天

案例1:创建一张表,记录生日

案例2:创建一个留言表

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

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

bash 复制代码
理解:
------------------------------|-----------|-------------|------------------
                           初始时间       now()       初始时间+2min

2.字符串函数

MySQL中的字符串函数(String Functions)用于对文本数据进行处理,比如拼接、截取、查找、替换、大小写转换等.

函数 说明
charset(str) 返回字符串字符集
concat(string2, ...) 连接字符串
instr(string, substring) 返回substring在string中首次出现的位置,没有返回0
ucase(string2) 转换成大写
lcase(string2) 转换成小写
left(string2, length) 从左边截取length个字符
length(string) 返回字符串长度
replace(str, search_str, replace_str) 用replace_str替换search_str
strcmp(string1, string2) 逐字符比较两个字符串大小
substring(str, position , length) 从position开始截取length个字符
ltrim(string) 去除左侧空格
rtrim(string) 去除右侧空格
trim(string) 去除两边空格

案例

获取emp表的ename列的字符集

要求显示exam_result表中的信息,显示格式:"XXX的语文是XXX分,数学XXX分,英语XXX分"

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

注意:length函数返回字符串长度,以字节为单位.如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节.比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)

将EMP表中所有名字中有S的替换成'上海'

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

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


3.数学函数

MySQL 的数学函数(Math Functions)可以帮你做各种数值计算.

函数名称 描述
abs(number) 绝对值函数
bin(decimal_number) 十进制转换二进制
hex(decimal_number) 转换成十六进制
conv(number, from_base, to_base) 进制转换
ceiling(number) 向上取整
floor(number) 向下取整
format(number, decimal_places) 格式化,保留小数位数
rand() 返回随机浮点数,范围[0.0, 1.0)
mod(number, denominator) 取模,求余

绝对值

向上取整

向下取整

保留2位小数位数(小数四舍五入)

产生随机数


4.其它函数

user() 查询当前用户

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

database()显示当前正在使用的数据库

password()函数,MySQL数据库使用该函数对用户加密

ifnull(val1,val2)如果val1为null,返回val2,否则返回val1的值


5.查找字符串中逗号出现的次数(实战OJ)

sql 复制代码
SELECT
    id,
    LENGTH(string) - LENGTH(REPLACE(string, ',', '')) AS cnt
FROM strings;

🚀真正的勇者不是流泪的人,而是含泪奔跑的人!


敬请期待下一篇文章内容


每日心灵鸡汤: 以读书对抗自我!

只要我一直读书,我就能够一直理解自己的痛苦,一直与自己的无知、狭隘、偏见、阴暗见招拆招.很多人说和自己握手言和.我不要做这样的人,我要拿石头打磨我这块石头.

相关推荐
weixin_307779131 小时前
在 Azure 上构建数据库路由与异构整合层:原理、方案与最佳实践
数据库·人工智能·后端·云计算·azure
爱基百客1 小时前
植物单细胞配受体数据库:PlantCellChatDB详解
数据库·单细胞·单细胞分析
力学与人工智能2 小时前
论文分享 | 优化离散损失求解反问题:无需神经网络的快速精确学习
人工智能·神经网络·学习·优化·离散损失·反问题求解·快速准确学习
A.说学逗唱的Coke10 小时前
【大模型专题】向量数据库深度解析:从原理到实战,构建企业级 AI 知识检索底座
数据库·人工智能
果丁智能10 小时前
智能锁赋能网约房民宿数字化管控:身份核验+远程授权,筑牢安全防线、降本增效
网络·数据库·人工智能·安全·智能家居
V搜xhliang024610 小时前
AI智能体的数据安全与合规实践
人工智能·学习·数据分析·自动化·ai编程
无敌的牛11 小时前
redis学习过程
数据库·redis·学习
IT北辰11 小时前
神通数据库管理系统V7.0.251210 for Windows(x86 64bit)安装部署
数据库·神通