MySQL函数全解析:从基础操作到高级应用

发布时间:2026/10/31 12:14:10

MySQL函数全解析:从基础操作到高级应用 1. MySQL函数概述MySQL作为最流行的关系型数据库之一提供了丰富的内置函数库这些函数可以显著简化SQL查询的编写提高数据处理效率。函数本质上是一组预定义的SQL指令集合能够接收参数、执行特定操作并返回结果。在实际开发中合理使用这些函数可以避免在应用层编写大量重复代码将数据处理逻辑下推到数据库层面执行。MySQL函数主要分为以下几大类字符串函数处理文本数据数值函数数学运算和数值处理日期时间函数日期和时间操作聚合函数对多行数据进行计算控制流函数条件逻辑处理系统信息函数获取数据库和系统信息2. 字符串处理函数2.1 基础字符串操作CONCAT() 是最常用的字符串连接函数SELECT CONCAT(first_name, , last_name) AS full_name FROM employees;SUBSTRING() 用于提取子字符串SELECT SUBSTRING(MySQL Functions, 7, 8); -- 返回 FunctionsLENGTH() 和 CHAR_LENGTH() 的区别SELECT LENGTH(中文), -- 返回字节数(UTF8下通常为6) CHAR_LENGTH(中文); -- 返回字符数(2)2.2 字符串格式化函数TRIM() 函数去除首尾空格SELECT TRIM( MySQL ); -- 返回 MySQLUPPER() 和 LOWER() 转换大小写SELECT UPPER(mysql), LOWER(MySQL);FORMAT() 数字格式化SELECT FORMAT(1234567.89, 2); -- 返回 1,234,567.893. 数值计算函数3.1 基本数学运算ROUND() 四舍五入SELECT ROUND(3.14159, 2); -- 返回 3.14CEIL() 和 FLOOR()SELECT CEIL(3.2), FLOOR(3.8); -- 分别返回4和3RAND() 生成随机数SELECT RAND(); -- 返回0-1之间的随机浮点数3.2 高级数值处理MOD() 取模运算SELECT MOD(10, 3); -- 返回1POW() 幂运算SELECT POW(2, 10); -- 返回1024TRUNCATE() 截断小数SELECT TRUNCATE(3.14159, 3); -- 返回3.1414. 日期时间函数4.1 日期获取与计算NOW() 获取当前日期时间SELECT NOW(); -- 返回 2023-08-20 14:30:45DATE_ADD() 和 DATE_SUB()SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH); SELECT DATE_SUB(NOW(), INTERVAL 1 WEEK);DATEDIFF() 计算日期差SELECT DATEDIFF(2023-12-31, 2023-01-01); -- 返回3644.2 日期格式化DATE_FORMAT() 自定义格式SELECT DATE_FORMAT(NOW(), %Y年%m月%d日 %H时%i分);DAYNAME() 和 MONTHNAME()SELECT DAYNAME(NOW()), MONTHNAME(NOW());5. 聚合函数5.1 基本聚合操作COUNT() 统计行数SELECT COUNT(*) FROM employees;SUM() 和 AVG()SELECT SUM(salary), AVG(salary) FROM employees;MAX() 和 MIN()SELECT MAX(salary), MIN(salary) FROM employees;5.2 分组聚合GROUP_CONCAT() 合并分组结果SELECT department_id, GROUP_CONCAT(last_name) AS employees FROM employees GROUP BY department_id;6. 条件判断函数6.1 IF函数基本IF() 函数SELECT product_name, IF(stock 0, 有货, 缺货) AS status FROM products;6.2 CASE表达式简单CASESELECT product_name, CASE price_range WHEN LOW THEN 经济型 WHEN MID THEN 标准型 WHEN HIGH THEN 豪华型 END AS type FROM products;搜索式CASESELECT product_name, CASE WHEN price 100 THEN 低价 WHEN price BETWEEN 100 AND 500 THEN 中价 ELSE 高价 END AS price_level FROM products;7. 系统信息函数7.1 数据库信息VERSION() 获取MySQL版本SELECT VERSION();DATABASE() 当前数据库SELECT DATABASE();7.2 连接信息USER() 和 CURRENT_USER()SELECT USER(), CURRENT_USER();CONNECTION_ID() 连接IDSELECT CONNECTION_ID();8. 窗口函数(MySQL 8.0)8.1 排名函数ROW_NUMBER()SELECT employee_id, last_name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS rank FROM employees;RANK() 和 DENSE_RANK()SELECT employee_id, last_name, salary, RANK() OVER (ORDER BY salary DESC) AS rank, DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank FROM employees;8.2 分析函数LEAD() 和 LAG()SELECT order_date, amount, LAG(amount, 1) OVER (ORDER BY order_date) AS prev_amount, LEAD(amount, 1) OVER (ORDER BY order_date) AS next_amount FROM orders;9. JSON函数(MySQL 5.7)9.1 JSON创建与修改JSON_OBJECT()SELECT JSON_OBJECT(name, John, age, 30);JSON_ARRAY()SELECT JSON_ARRAY(1, a, TRUE, NULL);9.2 JSON查询JSON_EXTRACT()SELECT JSON_EXTRACT({name:John,age:30}, $.name);JSON_CONTAINS()SELECT JSON_CONTAINS({a:1,b:2}, 1, $.a);10. 函数使用注意事项10.1 性能考虑函数索引的使用-- 创建函数索引 CREATE INDEX idx_name_lower ON employees(LOWER(last_name));避免在WHERE条件中使用函数-- 不推荐 SELECT * FROM orders WHERE DATE_FORMAT(order_date, %Y-%m) 2023-08; -- 推荐 SELECT * FROM orders WHERE order_date BETWEEN 2023-08-01 AND 2023-08-31;10.2 兼容性问题不同MySQL版本的函数差异MySQL 5.7引入了JSON函数MySQL 8.0引入了窗口函数某些函数在不同版本的行为可能不同10.3 最佳实践为常用函数组合创建存储函数DELIMITER // CREATE FUNCTION full_name(first VARCHAR(50), last VARCHAR(50)) RETURNS VARCHAR(101) DETERMINISTIC BEGIN RETURN CONCAT(first, , last); END // DELIMITER ;使用函数提高SQL可读性SELECT order_id, DATE_FORMAT(order_date, %Y-%m-%d) AS formatted_date, CONCAT($, FORMAT(total_amount, 2)) AS amount FROM orders;注意NULL值处理SELECT IFNULL(NULL, 默认值); -- 返回默认值 SELECT COALESCE(NULL, NULL, 第一个非NULL值); -- 返回第一个非NULL值
延伸阅读

更多相关文章

2026/10/31 12:14:10

MySQL表结构查看方法与实战技巧

1. MySQL表结构查看基础 刚接触MySQL数据库时,第一件需要掌握的事情就是如何查看表结构。作为数据库的骨架,表结构决定了数据的存储方式和访问路径。我刚开始工作时就曾因为不熟悉表结构查看方法,导致写出的SQL语句效率低下,甚至引…

2026/10/31 12:09:10

物理AI技术:多模态感知与工业智能化的未来

1. 物理AI技术爆发的产业背景 2026年将成为物理AI技术发展的关键转折点,这背后有着深刻的产业逻辑和技术积累。物理AI(Physical AI)是指将人工智能技术与物理世界中的实体系统深度融合的技术范式,它正在重塑从制造业到服务业的各个…

2026/10/31 12:09:10

Frida移动安全分析:从基础连接到高级Hook实战指南

1. Frida常用命令全景指南作为移动安全分析领域的瑞士军刀,Frida的命令行工具链提供了从基础连接到高级Hook的全套解决方案。让我们从实战角度剖析这些命令的深层应用逻辑。1.1 环境准备与设备连接设备连接是Frida工作的基础,不同场景需要采用不同的连接…

2026/10/31 13:29:14

K-means算法在电力系统电压分区调节中的应用与实践

1. 项目背景与核心价值 电力系统电压调节一直是电网运维的核心难题。传统集中式调节方式在面对大规模分布式电源接入时显得力不从心,而基于集群划分的分布式调节策略正成为行业新趋势。这个项目巧妙地将机器学习中的K-means算法应用于IEEE 33节点系统的电压分区&…

2026/10/31 13:29:14

K-means聚类在电力系统电压调节中的应用与优化

1. 项目背景与核心思路 电力系统电压调节一直是电网运维中的关键挑战。在IEEE 33节点这样的典型配电网模型中,传统集中式电压控制方法往往面临响应速度慢、调节精度不足的问题。我们团队尝试将机器学习中的K-means聚类算法引入电压调节领域,通过智能化的…

2026/10/31 13:29:14

从TTS接口到自托管配音管线:批量声音克隆合成实战指南

去年年底那段时间,我被一批批量配音的需求折磨得够呛。手头有几百条本地化文案要转成音频,内容不算复杂,但胜在量大。一开始我直接往云端文本转语音接口上堆,结果账单嗖嗖涨,而且想调声音细节的时候总有种隔靴搔痒的感…

2026/10/31 13:29:14

openrig:用铝型材搭建可无限扩展的桌面工作站支架

很多人第一次听到 openrig 这个名字,第一反应是“又一个开源硬件项目”。确实,它沾点开源的边,但本质上它不是一块开发板,也不是一套固件,而是一套 开放式设备支架系统 ——用铝型材、T型螺母、角件这些标准件&#…

2026/10/31 13:29:14

Flink Print SQL Connector:实时数据流调试利器

1. Flink Print SQL Connector 调试利器解析 在 Flink SQL 开发过程中,调试数据流转一直是个痛点。传统的调试方法往往需要将数据写入外部存储系统再查看,不仅耗时还增加了复杂度。而 Print SQL Connector 作为 Flink 内置的调试工具,可以直接…

2026/10/31 13:24:14

从硬编码到动态决策:Agent工具选择策略的演进与落地

上周有个朋友过来找我聊,说他负责的 Agent 项目要从 20 多个工具里做选择,代码里全是 if-else,每次加新需求都得把整棵规则树翻一遍,改完还要担心把旧分支打坏。他说想换成动态决策,但又怕结果不可控。这个纠结我太熟悉…

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/30 20:55:09

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介:本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包,专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片,标注质量高,同时提供VOC(XML)、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介:本资源为2017年HDU多校联合训练第一场官方配套资料,面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员,旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件,含15份C标程(覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑