MySQL 常用函数汇总:从字符串处理到加密解密实战
在 MySQL 开发中,熟练掌握内置函数是编写高效 SQL 的关键。本文详解数学、字符串、日期、流程控制及加密等类别函数的语法与应用场景,附带完整示例代码,助力数据查询与加工。
基本函数与数值运算
MySQL 提供了丰富的数值处理功能,除了基础的加减乘除,还包含取整、绝对值、随机数生成等操作。了解这些基本函数有助于进行数据的初步标准化处理。
三角函数与进制转换
角度与弧度的换算
在进行几何或物理相关的数据计算时,往往需要在角度制和弧度制之间切换。MySQL 支持 RADIANS() 和 DEGREES() 函数进行自动换算,同时也提供了标准的三角函数如 SIN(), COS(), TAN() 以及反三角函数。
进制转换函数
CONV(N, from_base, to_base) 是 MySQL 中非常实用的进制转换工具,可将数字在不同进制间互相转换。例如将十进制转换为十六进制常用于日志 ID 处理或短链接生成。配合 HEX() 和 UNHEX() 使用效果更佳。
字符串处理函数
字符串操作是 SQL 中最常见的场景之一,涉及拼接、截取、替换、大小写转换及去除空格等。合理运用这些函数可以大幅减少应用层的字符串处理逻辑。
- 长度与填充:获取字符长度
LENGTH()/CHAR_LENGTH();使用LPAD()/RPAD()进行左右补齐。 - 子串提取:
SUBSTRING(str, pos, len)提取子串;LEFT()/RIGHT()获取首尾字符。 - 查找与替换:
LOCATE()查找子串位置;REPLACE()全局替换指定子串。 - 格式化:
CONCAT_WS()带分隔符拼接;TRIM()去除首尾空白。
日期和时间函数
时间数据管理涉及获取当前时间、格式化输出、区间计算及时间戳转换。
获取日期和时间
常用函数包括 NOW() 返回当前日期和时间,CURDATE() 仅返回日期,CURTIME() 仅返回时间。此外还有 YEAR(), MONTH(), DAY() 等用于拆解时间字段。
日期与时间戳的转换
在处理跨平台数据时,常需将标准日期转换为 Unix 时间戳。使用 UNIX_TIMESTAMP() 将 datetime 转为秒级时间戳,反向转换可使用 FROM_UNIXTIME()。
获取月份、星期、天数
WEEKDAY() 返回周索引(0-6),DAYOFWEEK() 返回星期几的数字表示。结合 QUARTER() 可快速按季度分组统计。
指数和对数函数
用于科学计算或对数尺度的数据分析,主要函数有 EXP() 计算 e 的幂,LOG(x) 自然对数,LN(x) 同左,POW(x,y) 计算 x 的 y 次方等。
流程控制函数
SQL 中的条件判断通常使用 IF(), IFNULL(), ISNULL() 和 CASE 表达式。
IF(cond, true_val, false_val):简单二分支选择。COALESCE(val1, val2...):返回第一个非空值,比IFNULL更灵活。CASE WHEN ... THEN ... END:多条件复杂分支逻辑。
加密与解密函数
虽然不推荐直接存储明文密码,但在某些数据脱敏或哈希比对场景中会使用以下不可逆加密函数:MD5() 和 SHA()(支持 SHA1, SHA256)。如需对称加密可使用 AES_ENCRYPT / AES_DECRYPT。
-- 不可逆加密示例 SELECT MD5( 'MYSQL' ), SHA( 'MYSQL' ) FROM DUAL;
MYSQL 信息函数
调试 SQL 语句时,VERSION() 查看数据库版本,DATABASE() 查看当前库名,USER() 查看当前连接用户,LAST_INSERT_ID() 获取最近插入的主键 ID 等辅助信息函数也常被用到。
总结
以上就是 MySQL 常用函数的详细内容,更多关于 MySQL 高级查询技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









