当前位置: 首页 > news >正文

MySQL 函数详细说明

目录

一、数学函数

二、字符串函数

三、日期时间函数

四、条件函数

五、聚合函数

六、自定义函数(UDF)

注意事项


MySQL 提供了丰富的内置函数,用于数据处理、计算和转换。这些函数主要分为以下几类:

一、数学函数
  1. 绝对值ABS(x)

    SELECT ABS(-5);  -- 返回 5
    

  2. 四舍五入ROUND(x, d)
    d 为小数位数:

    SELECT ROUND(3.14159, 2);  -- 返回 3.14
    

  3. 随机数RAND()
    生成 $$[0,1)$$ 的随机数:

    SELECT RAND();  -- 如 0.7632
    

  4. 取整

    • CEIL(x)(向上取整)
    • FLOOR(x)(向下取整)
    SELECT CEIL(3.2), FLOOR(3.8);  -- 返回 4, 3
    


二、字符串函数
  1. 拼接CONCAT(str1, str2, ...)

    SELECT CONCAT('Hello', ' ', 'World');  -- 'Hello World'
    

  2. 子串提取SUBSTRING(str, start, length)

    SELECT SUBSTRING('MySQL', 3, 3);  -- 'SQL'
    

  3. 长度计算

    • LENGTH(str)(字节长度)
    • CHAR_LENGTH(str)(字符长度)
    SELECT LENGTH('中文'), CHAR_LENGTH('中文');  -- 6, 2
    

  4. 大小写转换

    • UPPER(str)
    • LOWER(str)
    SELECT UPPER('abc');  -- 'ABC'
    


三、日期时间函数
  1. 当前时间

    • NOW()(日期+时间)
    • CURDATE()(日期)
    SELECT NOW();  -- '2023-10-05 14:30:00'
    

  2. 日期加减DATE_ADD(date, INTERVAL expr unit)

    SELECT DATE_ADD('2023-01-01', INTERVAL 1 MONTH);  -- '2023-02-01'
    

  3. 日期格式化DATE_FORMAT(date, format)

    SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日');  -- '2023年10月05日'
    


四、条件函数
  1. IF 判断IF(expr, true_val, false_val)

    SELECT IF(score > 60, '及格', '不及格') FROM students;
    

  2. CASE 分支

    SELECT CASE WHEN score >= 90 THEN 'A'WHEN score >= 80 THEN 'B'ELSE 'C'END AS grade
    FROM students;
    


五、聚合函数
  1. 求和SUM(column)

    SELECT SUM(salary) FROM employees;
    

  2. 平均值AVG(column)

    SELECT AVG(age) FROM users;
    

  3. 计数COUNT(column)

    SELECT COUNT(*) FROM orders;
    


六、自定义函数(UDF)

通过 CREATE FUNCTION 扩展功能:

DELIMITER $$
CREATE FUNCTION CalculateTax(salary DECIMAL(10,2))
RETURNS DECIMAL(10,2)
BEGINRETURN salary * 0.1;
END$$
DELIMITER ;-- 调用
SELECT CalculateTax(5000);  -- 返回 500


注意事项

  1. 函数嵌套:支持多层嵌套,如 ROUND(AVG(salary), 2)
  2. 空值处理:多数函数遇到 NULL 返回 NULL
  3. 性能优化:避免在 WHERE 子句中对列使用函数(可能无法使用索引)

完整函数列表参考 MySQL 官方文档。

http://www.dtcms.com/a/524282.html

相关文章:

  • 《Memcached 连接:深入理解与优化实践》
  • C++ EigenSolver无优化模式下报错分析
  • 数据结构——折半插入排序
  • io_uring 快吗? Postgres 17 与 18 的基准测试
  • 国产数据库替代MongoDB:政务电子证照新选择
  • 甘孜建设网站集团响应式网站建设
  • 枸杞网站建设方案2024年即将上市的手机
  • Git 版本回退 reset --mixed 命令
  • 博途DWORD中包含word ,字节,位的关系
  • Java Character 类详解
  • 【数据结构】队列“0”基础知识讲解 + 实战演练
  • 【生活】秋冬季节,鼻子很干结痂,扣掉鼻孔干痂流血,鼻塞等护理方法
  • 网站关键词公司百度关键词查询
  • 大模型通识
  • 346. 执行操作后元素的最高频率 I
  • 一些常用的linux操作指令
  • jeecg表单设计器js增强实现效果案例;点按钮出弹框,iframe嵌套,数据传输等
  • Spring IOC源码篇八 核心方法prepareBeanFactory
  • S10--循环队列
  • 基于月尺度水分平衡模型的葡萄园规划与行间管理决策
  • 网站的前期推广网页设计与制作源代码
  • PY32F040单片机介绍(3)
  • 白云网站 建设seo信科上海城市分站seo
  • Python流程控制语法结构-选择分支新特性
  • 快速学完 LeetCode top 1~50 [特殊字符]
  • 河南网站开发培训价格商丘哪里做网站比较好
  • 【常用设计模式全解析】创建型模式(聚焦对象创建机制)、结构型模式(优化类与对象的组合关系)、行为型模式(规范对象间的交互行为)
  • MFF-YOLOv8:基于多尺度特征融合的无人机遥感图像小目标检测
  • SSM框架-MyBatis1
  • 从一开始部署Android项目Sonarqube的自动化扫码+通知+增量扫描功能(Win环境、Docker,基于Jenkins)