【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.pswp.cn/news/906966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 异步编程、对象/数组操作

异步编程 JavaScript 是单线程语言,通过事件循环机制处理异步操作。任务分为两种: 宏任务(Macrotask): script整体代码、setTimeout(时间结束执行)、setInterval(间隔执行)、I/O、UI渲染 微任务(Microtas…

中小制造企业网络安全防护指南

考虑到文章内容较长,简要内容图片在文档末尾,请直接翻阅到底部查看 引言:中小制造企业面临的独特网络安全挑战 中小制造企业 (SME) 在当今数字化浪潮中扮演着至关重要的角色,然而,伴随技术进步而来的是日益严峻且独特…

es学习小结

1.​客户端类型​ ​推荐场景​ ​版本兼容性​ Elasticsearch Java API Client 新项目、ES 8.x集群 8.x及以上 Spring Data Elasticsearch Spring生态项目、简化ORM操作 ES 7.x-8.x(需版本匹配) Low-Level REST Client 需要底层HTTP控制、兼容多版本ES …

Axure项目实战:智慧运输平台后台管理端-订单管理2(多级交互)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:订单管理2 主要内容:中继器筛选、表单跟随菜单拖动、审批数据互通等 应用场景:订单管理…

2025年——ComfyUI_连接HuggingFace及更改缓存路径

本篇分享在 ComfyUI 中连接 huggingface 以及更改模型缓存路径。 我们在使用 ComfyUI 的一些插件时,有些必要模型只能通过连接 huggingface 来缓存才能让流程得以进行。但目前在上网不科学的情况下是无法打开 huggingface 网站的,好在国内有其镜像网站&a…

wx.getPrivacySetting接口needAuthorization一直返回false

我们在开发小程序的隐私协议授权时往往会使用到wx.getPrivacySetting接口,当返回的needAuthorization为true时候提示我们需要去授权,但你们有没有遇到过needAuthorization一直为false的情况呢,下面是最常见的三个解决方法,都完善了…

旅游信息检索

旅游信息检索 旅游信息检索是系统中实现数据获取和处理的关键环节,负责根据用户输入的目的地城市和出游天数,动态获取并生成高质量的旅游数据。 模块的工作流程分为以下几个阶段:首先,对用户输入的信息进行标准化处理&#xff0…

机器学习笔记【Week2】

一、多变量线性回归(Multivariate Linear Regression) 为什么需要多变量? 现实问题中,一个目标可能受多个因素影响,比如预测房价时: x 1 x_1 x1​:面积 x 2 x_2 x2​:卧室数量 x 3…

Axure 基本用法学习笔记

一、元件操作基础 1. 可见性控制 隐藏/显示:可以设置元件的可见性,使元件在特定条件下隐藏或可见 应用场景:创建动态交互效果,如点击按钮显示隐藏内容 2. 层级管理 层级概念:元件有上下层关系,上层元件…

aws平台s3存储桶夸域问题处理

当我们收到开发反馈s3存在跨域问题 解决步骤: 配置 S3 存储桶的 CORS 设置: 登录到 AWS 管理控制台。转到 S3 服务。选择你存储文件的 存储桶。点击 权限 标签页。在 跨域资源共享(CORS)配置 部分,点击 编辑。 登陆…

【后端高阶面经:微服务篇】7、1秒响应保障:超时控制如何成为高并发系统的“救火队长”?

一、全链路超时建模:从用户需求到系统分解 1.1 端到端时间预算分配 黄金公式: 用户期望响应时间 = 网络传输时间 + 服务处理时间 + 下游调用时间 + 缓冲时间典型分配策略(以1秒目标为例): 环节时间预算优化目标客户端渲染100ms骨架屏(Skeleton)预渲染边缘节点(CDN)…

前端遇到高并发如何解决重复请求

在前端开发中遇到高并发场景时,若不加控制容易出现重复请求,这可能导致接口压力增加、数据异常、用户体验变差等问题。以下是前端防止/解决重复请求的常见方法,按不同场景归类总结: 🌟 一、常见重复请求场景 用户频繁点…

老牌协议再升级,Ethernet IP转Modbus TCP网关桥接精准灌装系统

对于消费品包装制造商而言,灌装机是最关键且昂贵的设备之一。然而,许多公司却难以应对生产过程中的灌装波动,从而造成严重的财务和生产后果。 在本次网络研讨会中,我们将探讨稳联技术的ethernet ip转modbus tcp(WL-ABC…

骰子游戏(2023睿抗省赛)

骰子游戏 题目描述: 在某个游戏中有一个骰子游戏。 在游戏中,你需要投掷 5 个标准六面骰子(骰子为一个正方体,6个面上分别有 1、2、3、4、5、6中的一个数字,骰子的质量均匀),投出的点数根据组合会获得一…

CMake跨平台编译生成:从理论到实战

一、引言 在当今软件开发中,跨平台开发已成为常态。无论是需要在Windows、Linux、macOS等多操作系统上运行,还是在不同的硬件架构(如x86、ARM等)间部署,跨平台编译生成都是一个无法回避的关键问题。CMake,…

Python经典算法实战

在编程的世界里,算法是解决问题的灵魂,而Python以其简洁优雅的语法成为实现算法的理想语言。无论你是初学者还是有一定经验的开发者,《Python经典算法实战》都能带你深入算法的殿堂,从理论到实践,一步步构建起扎实的编…

QT的自定义控件

1.比如对label控件进行提升为QPaintPointLabel类,基类选择QLabel,头文件建议加上相对路径,有时候VS识别不出来直接的头文件,在提升的类中重写pointEvent()函数。

flutter 常用组件详细介绍、屏幕适配方案

一、常用组件 1.基础组件 组件说明示例Text显示文本Text(‘Hello Flutter’, style: TextStyle(fontSize: 20))Image显示图片Image.network(‘https://example.com/image.jpg’)Icon显示图标Icon(Icons.home, size: 30, color: Colors.blue)RaisedButton / ElevatedButton按钮…

leetcode 17. Letter Combinations of a Phone Number

题目描述 17. Letter Combinations of a Phone Number 代码: class Solution {string table[10] {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz&qu…

Web前端大模型实战:端侧翻译+朗读流程线+模型音频数据编码 - 让网站快速支持多语言多模态输出

在以前的文章 前端大模型入门:实战篇之Vue3Antdvtransformers本地模型实现增强搜索 中介绍了前端使用大模型的文本RAG实现。本文将更进一步,介绍多模态输出的端侧实现。 本文将通过端侧大模型技术实现网页端的实时翻译与语音合成功能,无需服…