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

【MySQL成神之路】MySQL函数总结

以下是MySQL函数的全面总结,包含概念说明和代码示例:

一、MySQL函数分类

1. 字符串函数
-- CONCAT:连接字符串 
SELECT CONCAT('Hello', ' ', 'World'); 
-- 输出 'Hello World' 
-- SUBSTRING:截取子串 
SELECT SUBSTRING('MySQL', 2, 3); 
-- 输出 'ySQ' 
-- UPPER/LOWER:大小写转换 
SELECT UPPER('mysql'), LOWER('SQL'); 
-- 输出 'MYSQL', 'sql' 
-- TRIM:去除首尾空格SELECT TRIM(' MySQL '); 
-- 输出 'MySQL' 
-- REPLACE:替换字符串 
SELECT REPLACE('Hello World', 'World', 'MySQL'); 
-- 输出 'Hello MySQL' 
2. 数值函数
-- ROUND:四舍五入 
SELECT ROUND(3.1415, 2); 
-- 输出 3.14 
-- ABS:绝对值 
SELECT ABS(-15); 
-- 输出 15 
-- MOD:取余 
SELECT MOD(10, 3); 
-- 输出 1 
-- CEIL/FLOOR:向上/向下取整 
SELECT CEIL(2.3), FLOOR(2.7); 
-- 输出 3, 2 
3. 日期时间函数
-- NOW:当前日期时间 
SELECT NOW(); 
-- 输出 '2023-10-25 14:30:00' 
-- CURDATE/CURTIME:当前日期/时间 
SELECT CURDATE(), CURTIME(); 
-- 输出 '2023-10-25', '14:30:00' 
-- DATE_FORMAT:格式化日期 
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); 
-- 输出 '2023-10-25' 
-- DATEDIFF:日期差值 
SELECT DATEDIFF('2023-10-31', '2023-10-25'); 
-- 输出 6 
4. 聚合函数
-- SUM/AVG:求和/平均值 
SELECT SUM(salary), AVG(age) FROM employees; 
-- COUNT:计数 
SELECT COUNT(*) FROM orders WHERE status='completed'; 
-- MAX/MIN:最大/最小值SELECT MAX(price), MIN(quantity) FROM products; 
5. 流程控制函数
-- IF:条件判断 
SELECT IF(score >= 60, 'Pass', 'Fail') AS result FROM exams; 
-- CASE:多条件分支 
SELECT CASE WHEN temperature > 30 THEN 'Hot' WHEN temperature > 20 THEN 'Warm' ELSE 'Cool' END AS weather FROM sensors; 
6. 系统信息函数
-- VERSION:数据库版本 
SELECT VERSION(); 
-- USER:当前用户 
SELECT USER(); 
-- DATABASE:当前数据库 
SELECT DATABASE(); 
7. 加密函数
-- MD5:生成MD5哈希 
SELECT MD5('password123'); 
-- SHA1:生成SHA1哈希 
SELECT SHA1('secret'); 

二、函数使用注意事项


  1. NULL处理

    • 多数函数遇到NULL参数会返回NULL
    • 使用IFNULL处理NULL值
      SELECT IFNULL(email, 'N/A') FROM users; 
  2. 性能优化

    • 避免在WHERE子句中对字段使用函数(会导致索引失效)
    -- 不推荐: 
    SELECT * FROM logs WHERE DATE_FORMAT(created_at, '%Y-%m') = '2025-05'; 
    -- 推荐: 
    SELECT * FROM logs WHERE created_at BETWEEN '2023-10-01' AND '2025-05-31'; 
  3. 可移植性

    • MySQL特有函数(如DATE_FORMAT)在其他数据库可能不兼容

三、综合示例

-- 统计每月销售总额(使用日期函数和聚合函数) 
SELECT DATE_FORMAT(order_date, '%Y-%m') AS month, SUM(amount) AS total_sales FROM orders GROUP BY month ORDER BY month; -- 用户信息格式化(字符串函数嵌套) 
SELECT CONCAT(UPPER(last_name), ', ', first_name) AS full_name, YEAR(birthdate) AS birth_year FROM users WHERE DATEDIFF(CURDATE(), birthdate)/365 > 18; 
-- 筛选成年用户 

四、总结

MySQL函数体系提供了强大的数据处理能力,覆盖字符串操作、数值计算、日期处理、逻辑控制等场景。使用时需注意:

  • 合理选择函数类型和参数
  • 关注NULL值的处理逻辑
  • 在性能敏感场景谨慎使用函数
  • 注意不同数据库系统的函数差异

掌握这些函数的使用方法,可以显著提升SQL查询的灵活性和数据处理效率。

http://www.xdnf.cn/news/634159.html

相关文章:

  • 【寻找Linux的奥秘】第八章:进程控制
  • 我的第1个爬虫程序——豆瓣Top250爬虫的详细步骤指南
  • 云原生安全:网络协议TCP详解
  • GO 语言进阶之 时间处理和Json 处理
  • 2025.05.23 Axure 动态面板学习笔记
  • Python经典算法实战
  • 股票程序化交易-使用python获取新浪财经期货行情数据
  • 历年吉林大学保研上机真题
  • 历年复旦大学保研上机真题
  • React整合【ECharts】教程003:关系图的构建和基本设置
  • 项目难点 与 缓存
  • 制作一枚可随身携带的Linux服务器虚拟机
  • Linux核心技术:Linux文件系统与bootFS/rootFS
  • 高级特性实战:死信队列、延迟队列与优先级队列(二)
  • 6个月Python学习计划 Day 4
  • MySQL#秘籍#一条SQL语句执行时间以及资源分析
  • 机器学习-模型选择与调优
  • 【慧游鲁博】【8】前后端用户信息管理:用户基本信息在小程序端的持久化与随时获取
  • vue2项目搭建
  • Maven与Spring核心技术解析:构建管理、依赖注入与应用实践
  • 私有知识库 Coco AI 实战(七):摄入本地 PDF 文件
  • Spring Cloud Alibaba Sentinel安装+流控+熔断+热点+授权+规则持久化
  • Linux系统编程-DAY04
  • 网络编程与axios技术
  • 在飞牛nas系统上部署gitlab
  • aws(学习笔记第四十二课) serverless-backend
  • 人工智能数学基础实验(二):奇异值分解(SVD)-图像处理
  • OpenGL Chan视频学习-6 How Shaders Work in OpenGL
  • git提交通用规范
  • 前端流行框架Vue3教程:27. 依赖注入