本文共 2439 字,大约阅读时间需要 8 分钟。
在编程中,函数是代码的核心组件之一。MySQL中的函数为开发者提供了强大的工具,能够简化操作并提高效率。本文将详细介绍MySQL中的常见函数,包括字符函数、数学函数、日期函数以及其他流程控制函数。
字符函数是处理字符串的核心工具,常用于数据处理、格式化等场景。
length 获取字符串的字节个数
SELECT LENGTH('john'); -- 输出:4例如,LENGTH('张三丰hahaha') 返回9个字节。
concat 拼接字符串
SELECT CONCAT(last_name,'_',first_name) AS 姓名 FROM employees;
例如,用于拼接员工姓名。
upper、lower 转换字符大小写
SELECT UPPER('john'); -- 输出:JOHNSELECT LOWER('joHn'); -- 输出:john示例:将姓变大写,名变小写并拼接。
SELECT CONCAT(UPPER(last_name),LOWER(first_name)) AS 姓名 FROM employees;
substr、substring 截取字符串
SELECT SUBSTR('李莫愁爱上了陆展元',7) AS out_put; -- 输出:"了陆展"注意:索引从1开始。
SELECT SUBSTR('李莫愁爱上了陆展元',1,3) AS out_put; -- 输出:"李"案例:提取首字母大写,其他字符小写并用_拼接。
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) AS out_put FROM employees;
instr 查找子串
SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷八侠') AS out_put; -- 输出:0如果子串不存在,返回0。
trim 去除前后空格
SELECT LENGTH(TRIM(' 张翠山 ')) AS out_put; -- 输出:10示例:去除多余空格并提取纯文本。
lpad、rpad 左右填充字符
SELECT LPAD('殷素素',2,'*') AS out_put; -- 输出:**殷素素SELECT RPAD('殷素素',12,'ab') AS out_put; -- 输出:ab殷素素replace 替换字符
SELECT REPLACE('周芷若周芷若周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') AS out_put; -- 输出:赵敏赵敏赵敏赵敏赵敏张无忌爱上了赵敏数学函数用于对数值进行特定运算,常见于数据处理和统计。
round 四舍五入
SELECT ROUND(-1.55); -- 输出:-2
示例:四舍五入保留两位小数。
SELECT ROUND(1.567,2); -- 输出:1.57
ceil、floor 取整函数
SELECT CEIL(-1.02); -- 输出:-1
SELECT FLOOR(-9.99); -- 输出:-10
truncate 截断小数
SELECT TRUNCATE(1.69999,1); -- 输出:1
mod 取余运算
SELECT MOD(10,-3); -- 输出:-1
示例:计算10除以3的余数。
日期函数用于处理日期时间信息,常见于数据分析和数据展示。
now、curdate、curtime 获取当前日期时间
SELECT NOW(); -- 输出:当前日期和时间
SELECT CURDATE(); -- 输出:当前日期
SELECT CURTIME(); -- 输出:当前时间
year、month、monthname、day、hour、minute、second 提取日期时间的各部分
SELECT YEAR(NOW()) AS 年; -- 输出:2023
示例:提取指定日期的年月日等信息。
str_to_date、date_format 日期格式转换
SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS out_put; -- 输出:1998-03-02示例:将字符日期转换为标准格式。
date_format 格式化日期为字符
SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put; -- 输出:2023年12月31日
示例:提取并格式化入职日期。
这些函数提供了对系统环境和用户信息的访问权限。
SELECT VERSION(); -- 输出:MySQL版本号
SELECT DATABASE(); -- 输出:当前数据库名
SELECT USER(); -- 输出:连接的用户账号
流程控制函数用于实现条件判断和分支逻辑。
if函数 条件判断
SELECT IF(10<5,'大','小'); -- 输出:小
示例:根据条件判断显示不同结果。
case函数 多条件分支
SELECT last_name,commission_pct,IF(commission_pct IS NULL,'没奖金,呵呵','有奖金,嘻嘻') AS 备注 FROM employees;
示例:根据条件返回不同的奖金状态。
通过上述函数的学习和实践,您可以显著提升在MySQL中数据处理的能力。从字符操作到数学计算,再到日期处理,每一个函数都为您的开发提供了强大的工具。随着实践的增多,您会对MySQL功能有更深入的理解,能够更高效地完成开发任务。
转载地址:http://hhbfk.baihongyu.com/