1. MySQL内置函数概述
MySQL内置函数是数据库系统中预定义的一系列功能模块,它们可以直接在SQL语句中调用,无需额外安装或配置。这些函数就像是数据库工具箱里的各种工具,能帮我们高效地处理数据转换、计算、格式化等常见操作。
在实际项目中,我经常看到开发者重复造轮子——用应用程序代码实现那些本可以用内置函数轻松完成的工作。这不仅增加了代码量,还降低了查询效率。比如用程序代码实现字符串拼接,而MySQL本身就有CONCAT()函数;或者用循环计算平均值,却忽略了AVG()函数的存在。
内置函数主要分为以下几类:
- 字符串函数:处理文本数据
- 数值函数:数学运算
- 日期时间函数:处理时间相关操作
- 聚合函数:对结果集进行计算
- 控制流函数:实现条件逻辑
- 系统信息函数:获取数据库元数据
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 字符串函数深度解析
2.1 基础字符串操作
CONCAT()函数是我在项目中用得最多的字符串函数之一。它可以将多个字符串连接起来,比应用程序中拼接后再传入SQL要高效得多。比如生成用户全名:
sql复制SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
注意:如果任一参数为NULL,整个结果都会变成NULL。这时可以用CONCAT_WS()(带分隔符的concat),它会自动忽略NULL值。
SUBSTRING()和它的别名SUBSTR()用于截取字符串。我在处理产品编码时经常用到:
sql复制-- 提取产品编码前3位作为分类代码
SELECT SUBSTRING(product_code, 1, 3) AS category_code FROM products;
2.2 字符串搜索与替换
LOCATE()和INSTR()都能查找子串位置,但返回值有细微差别:
sql复制SELECT
LOCATE('apple', 'pineapple') AS locate_result, -- 返回5
INSTR('pineapple', 'apple') AS instr_result; -- 返回5
REPLACE()函数在做数据清洗时特别有用。有次我发现用户输入的电话
