【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');
二、函数使用注意事项
-
NULL处理:
- 多数函数遇到NULL参数会返回NULL
- 使用IFNULL处理NULL值
SELECT IFNULL(email, 'N/A') FROM users;
-
性能优化:
- 避免在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';
-
可移植性:
- 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查询的灵活性和数据处理效率。
相关文章:
【MySQL成神之路】MySQL函数总结
以下是MySQL函数的全面总结,包含概念说明和代码示例: 一、MySQL函数分类 1. 字符串函数 -- CONCAT:连接字符串 SELECT CONCAT(Hello, , World); -- 输出 Hello World -- SUBSTRING:截取子串 SELECT SUBSTRING(MySQL, 2, 3…...

线程池实战——数据库连接池
引言 作者在前面写了很多并发编程知识深度探索系列文章,反馈得知友友们收获颇丰,同时我也了解到友友们也有了对知识如何应用感到很模糊的问题。所以作者就打算写一个实战系列文章,让友友们切身感受一下怎么应用知识。话不多说,开…...
修改 vue-pdf 源码升级 pdfjs-dist 包, 以解决部分 pdf 文件显示花屏问题
文章目录 背景: 客户反馈有部分文件预览花屏 最终解决方案: 自己 fork vue-pdf 仓库, 修改 pdfjs-dist 版本, 升级到 3.3.122 (我是 vue2 项目 node 10 环境)修改源码中引用地址带有 pdfjs-dist/es5/ 的地方, 去掉 es5 , 另外如果还有报错自己搜一下 pdfjs-dist/ , 看看引用…...

基于moonshot模型的Dify大语言模型应用开发核心场景
基于moonshot模型的Dify大语言模型应用开发核心场景学习总结 一、Dify环境部署 1.Docker环境部署 这里使用vagrant部署,下载vagrant之后,vagrant up登陆,vagrant ssh,在vagrant 中使用 vagrant centos/7 init 快速创建虚拟机 安装…...

华为OD机试真题——字符串序列判定(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
2025 B卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…...
在Java的list.forEach(即 Stream API 的 forEach 方法)中,无法直接使用 continue 或 break 语句的解决办法
说明 在 Java 的 list.forEach(即 Stream API 的 forEach 方法)中,无法直接使用 continue 或 break 语句,因为它是一个终结操作(Terminal Operation),依赖于 Lambda 表达式或方法引用。 有些时…...
Java面向对象高级学习笔记
面向对象高级 -类变量 类变量-提出问题 提出问题的主要目的就是让大家思考解决之道,从而引出我要讲的知识点 说:有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?,编写程序解决。 类变量快速入门 思考: 如果,设计一个int co…...
LLM之Agent:Mem0的简介、安装和使用方法、案例应用之详细攻略
LLM之Agent:Mem0的简介、安装和使用方法、案例应用之详细攻略 目录 Mem0的简介 1、Mem0的特点 2、性能: Mem0的安装及使用方法 1、安装 2、基本用法(基本用法) Mem0的案例应用 Mem0的简介 Mem0(发音为“mem-ze…...

工商总局可视化模版-Echarts的纯HTML源码
概述 基于ECharts的工商总局数据可视化HTML模版,帮助开发者快速搭建专业级工商广告数据展示平台。这款模版设计规范,功能完善,适合各类工商监管场景使用。 主要内容 本套模版采用现代化设计风格,主要包含以下核心功能模块&…...

Spring AI 和 Elasticsearch 作为你的向量数据库
作者:来自 Elastic Josh Long, Philipp Krenn 及 Laura Trotta 使用 Spring AI 和 Elasticsearch 构建一个完整的 AI 应用程序。 Elasticsearch 原生集成了业界领先的生成式 AI 工具和服务提供商。查看我们关于超越 RAG 基础或使用 Elastic 向量数据库构建生产级应用…...
阿里云OSS Api工具类不使用sdk
本文工具实现了OSS简单的上传、下载、获取bucket列表功能,一个工具类搞定,不用集成oss sdk v1签名算法 v1算法(v1算法将在2025年9月停用,旧的key不受影响,新key必须用v4) v1签名工具类OssV1Signer.java …...

集群聊天服务器学习 配置开发环境(VScode远程连接虚拟机Linux开发)(2)
配置远程开发环境 第一步:Linux系统运行sshd服务 第二步:在vscode上安装Remote Deve I opment插件,其依赖插件会自动安装 第三步:配置远程Linux主机的信息 第四步:在vscode上开发远程连接Linux 第一步:…...

rabbitmq的使用介绍
一.队列工作模式介绍 1.WorkQueues模型 生产者直接把消息发送给队列,然后消费者订阅队列 特点: 消息不会重复, 分配给不同的消费者. 代码实现: 消费者代码: Component Slf4j public class SpringRabbitListener {RabbitListener(queues &q…...
前端的core-js是什么?有什么作用?
core-js 是前端生态中一个重要的 JavaScript 标准库 polyfill,它的主要作用是为不同浏览器环境提供 ECMAScript 最新特性 和 API 的兼容性支持。以下是其核心作用的详细解析: 一、core-js 是什么? 本质:一个模块化的 JavaScript …...
【Python 命名元祖】collections.namedtuple 学习指南
📚 collections.namedtuple 学习指南 命名元组(namedtuple)是 Python collections 模块中一种增强型元组,支持通过字段名访问元素,同时保持元组的内存效率和不可变性。 一、基础用法 1. 定义命名元组 from collectio…...

系统编程day04
一.进程的基本概念 一.定义 进程是一个程序执行的过程(也可以说是正在运行的程序),是系统分配资源的基本单位,由cpu对各个进程指挥调度,在单核cpu的情况下,各个进程可以通过一定规则在cpu上并发运行。 二.PCB块 1.PC…...
java 加密算法的简单使用
简介 加密算法,就是将原本的明文,通过一系列操作变成密文。在这里介绍一些常用的加密算法。在日常开发中,接触到了一些加密算法,例如,用户的隐私信息,诸如密码、手机号等,需要加密后存储到数据…...

Arduino Uno KY-037声音传感器实验
KY-037声音传感器实验 KY-037声音传感器实验1、 实验内容2、KY-037声音传感器介绍3、实验注意事项4、代码和实验现象 KY-037声音传感器实验 1、 实验内容 通过对KY-037声音传感器吹气,控制LED的打开和关闭,吹一下LED打开,在吹一下LED关闭。…...
机器学习---各算法比较
机器学习算法 线性回归 优点:简单;适用于大规模数据集。 缺点:无法处理非线性关系;对异常值敏感。 多项式回归 优点:捕捉特征和目标之间的非线性关系。 缺点:可能会过度拟合数据。 岭回归 优点&#…...

基于音频Transformer与动作单元的多模态情绪识别算法设计与实现(在RAVDESS数据集上的应用)
摘要:情感识别技术在医学、自动驾驶等多个领域的广泛应用,正吸引着研究界的持续关注。本研究提出了一种融合语音情感识别(SER)与面部情感识别(FER)的自动情绪识别系统。在SER方面,我们采用两种迁…...
Flink SQL 计算实时指标同比的实现方法
在 Flink SQL 中计算实时指标的同比(Year-on-Year),核心是通过时间窗口划分周期(如日、月、周),并关联当前周期与去年同期的指标值。以下是结合流数据处理特性的具体实现方法,包含数据准备、窗口聚合、历史数据关联等关键步骤。 一、同比的定义与场景 同比指当前周期指…...

什么是VR实景?有哪些高价值场景?
在数字化浪潮的推动下,虚拟现实技术正以前所未有的速度改变着我们的生活方式和工作模式。 其中,VR实景作为VR技术的一个重要应用场景,独特的沉浸感和交互性,在众多领域展现出应用潜力和高价值场景。什么是VR实景?VR实…...
基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强
基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强代码示例: 传统谱减法 function enhanced traditional_spectral_subtraction(noisy, fs, wlen, inc, NIS, a, b)% 参数说明:% noisy - 带…...

同一无线网络下的设备IP地址是否相同?
在家庭和办公网络普及的今天,许多人都会好奇:连接同一个Wi-Fi的设备是否共享相同的IP地址?这个问题看似简单,实则涉及多个角度。本文将为您揭示其中的技术奥秘。 用一个无线网IP地址一样吗?同一无线网络(如…...

第2周 PINN核心技术揭秘: 如何用神经网络求解偏微分方程
1. PDEs与传统数值方法回顾 (Review of PDEs & Traditional Numerical Methods) 1.1 什么是偏微分方程 (Partial Differential Equations, PDEs)? 偏微分方程是描述自然界和工程领域中各种物理现象(如热量传播、流体流动、波的振动、电磁场分布等)的基本数学语言。 1.…...

【C语言】习题练手套餐 2
每日习题分享。 字符串函数的运用 首先回顾一下字符串函数。 字符串长度 strlen(const char *s);功能:计算字符串的长度,不包含终止符\0。 字符串连接 char *strcat(char *dest, const char *src); char *strncat(char *dest, const char *src, si…...

[项目总结] 基于Docker与Nginx对项目进行部署
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

神经正切核推导(2)
对神经正切核的理解和推导(1)-CSDN博客 这篇文章包括很多概念的理解 声明: 本篇文章来自于Neural Tangent Kernel (NTK)基础推导 - Gearlesskai - 博客园 旨在对上述推导过程进行再推导与理解 手写推导部分与其他颜…...
Python模型优化技巧
在机器学习与数据分析领域,模型优化是提升预测准确性、缩短训练时间、降低资源消耗的核心环节。本文结合实战经验,从数据预处理、特征工程、模型调优、代码优化到部署监控,系统梳理Python模型优化的关键技巧,助你打造高效能模型。…...
Redis 面试场景
文章目录 项目地址一、Redis使用场景1.1 统计网站访问次数1.2 产品分类树1.3 分布式锁(常见)1.4 排行榜1.5 记录用户登录状态(记录)1.6 限流1.7 缓存加速1.8消息队列1.9 全局ID生成1.10 订餐系统场景1 . 单体版2. 故事板二、OutBox Pattern2.1 项目3. Saga状态机4. 日志4. …...