mysql函数大全及举例 - 详解

news/2025/11/16 20:18:14/文章来源:https://www.cnblogs.com/gccbuaa/p/19228872

一、数学函数

主要用于数值计算。

函数名功能描述示例
ABS(x)返回 x 的绝对值SELECT ABS(-1); -- 返回 1
CEIL(x) / CEILING(x)返回大于或等于 x 的最小整数(向上取整)SELECT CEIL(1.23); -- 返回 2
FLOOR(x)返回小于或等于 x 的最大整数(向下取整)SELECT FLOOR(1.99); -- 返回 1
ROUND(x, d)将 x 四舍五入,保留 d 位小数SELECT ROUND(1.23456, 2); -- 返回 1.23
TRUNCATE(x, d)将 x 截断为 d 位小数(不四舍五入)SELECT TRUNCATE(1.239, 2); -- 返回 1.23
RAND()返回 0 到 1 之间的随机浮点数SELECT RAND(); -- 返回 0.123456...
POW(x, y) / POWER(x, y)返回 x 的 y 次方SELECT POW(2, 3); -- 返回 8
SQRT(x)返回 x 的平方根SELECT SQRT(9); -- 返回 3
MOD(x, y)返回 x 除以 y 的余数(取模)SELECT MOD(10, 3); -- 返回 1

二、字符串函数

用于处理文本字符串。

函数名功能描述示例
CONCAT(s1, s2, ...)连接多个字符串SELECT CONCAT('Hello', ' ', 'World'); -- 'Hello World'
CONCAT_WS(sep, s1, s2, ...)用指定分隔符连接字符串SELECT CONCAT_WS(', ', 'Apple', 'Banana'); -- 'Apple, Banana'
LENGTH(s) / CHAR_LENGTH(s)返回字符串 s 的字符数SELECT LENGTH('中国'); -- 返回 2 (CHAR_LENGTH)
CHAR_LENGTH(s)返回字符串 s 的字符数SELECT CHAR_LENGTH('中国'); -- 返回 2
UPPER(s) / LOWER(s)将字符串转换为大写/小写SELECT UPPER('hello'); -- 'HELLO'
LEFT(s, n) / RIGHT(s, n)返回字符串 s 左边/右边开始的 n 个字符SELECT LEFT('MySQL', 2); -- 'My'
SUBSTRING(s, start, len)从字符串 s 的 start 位置截取 len 个字符SELECT SUBSTRING('Hello World', 7, 5); -- 'World'
REPLACE(s, from_str, to_str)将字符串 s 中的 from_str 替换为 to_strSELECT REPLACE('Hello World', 'World', 'MySQL'); -- 'Hello MySQL'
TRIM(s)去掉字符串 s 开头和结尾的空格SELECT TRIM(' text '); -- 'text'
LTRIM(s) / RTRIM(s)去掉字符串 s 开头/结尾的空格SELECT LTRIM(' text'); -- 'text'
REVERSE(s)反转字符串SELECT REVERSE('ABC'); -- 'CBA'
INSTR(s, substr)返回子串 substr 在字符串 s 中第一次出现的位置SELECT INSTR('Hello', 'e'); -- 返回 2

三、日期和时间函数

用于处理日期和时间值。

函数名功能描述示例
NOW() / CURDATE() / CURTIME()返回当前日期和时间 / 当前日期 / 当前时间SELECT NOW(); -- '2023-10-27 10:30:00'
DATE(date) / TIME(date)提取日期/时间部分SELECT DATE(NOW()); -- '2023-10-27'
YEAR(date) / MONTH(date) / DAY(date)从日期中提取年/月/日SELECT YEAR('2023-10-27'); -- 2023
HOUR(time) / MINUTE(time) / SECOND(time)从时间中提取时/分/秒SELECT HOUR('10:30:15'); -- 10
DATE_FORMAT(date, format)按格式格式化日期SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日'); -- '2023年10月27日'
DATEDIFF(date1, date2)计算两个日期之差 (date1 - date2),单位天SELECT DATEDIFF('2023-12-31', '2023-10-27'); -- 65
DATE_ADD(date, INTERVAL expr unit)日期加法SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); -- 明天此时
DATE_SUB(date, INTERVAL expr unit)日期减法SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); -- 一月前此时
DAYNAME(date)返回日期是星期几SELECT DAYNAME('2023-10-27'); -- 'Friday'

四、聚合函数

对一组值执行计算,并返回单个值。通常与 GROUP BY 子句一起使用。

函数名功能描述示例
COUNT(expr)返回记录的行数SELECT COUNT(*) FROM users;
SUM(expr)返回表达式 expr 的总和SELECT SUM(salary) FROM employees;
AVG(expr)返回表达式 expr 的平均值SELECT AVG(age) FROM students;
MAX(expr)返回表达式 expr 的最大值SELECT MAX(price) FROM products;
MIN(expr)返回表达式 expr 的最小值SELECT MIN(score) FROM exams;
GROUP_CONCAT(expr)将一组行的表达式连接成一个字符串SELECT GROUP_CONCAT(name) FROM users GROUP BY dept_id;

五、控制流函数

用于实现条件逻辑。

函数名功能描述示例
IF(condition, value_if_true, value_if_false)如果条件为真,返回第一个值,否则返回第二个值SELECT IF(10>5, 'Yes', 'No'); -- 'Yes'
IFNULL(expr1, expr2)如果 expr1 不为 NULL,返回 expr1,否则返回 expr2SELECT IFNULL(NULL, 'Default'); -- 'Default'
CASE WHEN ... THEN ... END多条件分支语句见下方详细示例

CASE 语句示例:

SELECTname,score,CASEWHEN score >= 90 THEN 'A'WHEN score >= 80 THEN 'B'WHEN score >= 70 THEN 'C'ELSE 'D'END AS grade
FROM exams;

六、系统信息函数

返回关于数据库和系统的信息。

函数名功能描述示例
VERSION()返回 MySQL 服务器版本SELECT VERSION();
DATABASE()返回当前数据库名SELECT DATABASE();
USER()返回当前用户名和主机名SELECT USER();
CONNECTION_ID()返回当前连接的连接 IDSELECT CONNECTION_ID();
LAST_INSERT_ID()返回最后插入的 AUTO_INCREMENT 列的值SELECT LAST_INSERT_ID();

七、类型转换函数

用于转换数据类型。

函数名功能描述示例
CAST(expr AS type)将表达式转换为指定类型SELECT CAST('123' AS UNSIGNED); -- 123
CONVERT(expr, type)将表达式转换为指定类型SELECT CONVERT('2023-10-27', DATE); -- 2023-10-27

类型可以是:BINARYCHARDATEDATETIMETIMESIGNEDUNSIGNEDDECIMAL 等。


八、JSON 函数 (MySQL 5.7+)

用于操作 JSON 数据类型。

函数名功能描述示例
JSON_EXTRACT(json_doc, path) / ->从 JSON 文档中提取值SELECT JSON_EXTRACT('{"name": "John"}', '$.name'); -- "John"
JSON_OBJECT(key, val, ...)创建 JSON 对象SELECT JSON_OBJECT('id', 1, 'name', 'Alice');
JSON_ARRAY(val1, val2, ...)创建 JSON 数组SELECT JSON_ARRAY(1, 2, 3);
JSON_SEARCH(json_doc, one/all, search_str)在 JSON 文档中查找值并返回路径SELECT JSON_SEARCH('{"name": "John"}', 'one', 'John'); -- "$.name"

综合应用示例

假设有一个 orders 表 (order_idcustomer_nameorder_dateamount)。

-- 1. 查询本月订单总额和平均金额
SELECTSUM(amount) AS total_amount,AVG(amount) AS avg_amount
FROM orders
WHERE YEAR(order_date) = YEAR(NOW()) AND MONTH(order_date) = MONTH(NOW());-- 2. 格式化客户名称(首字母大写)和订单日期
SELECTCONCAT(UPPER(LEFT(customer_name, 1)), LOWER(SUBSTRING(customer_name, 2))) AS formatted_name,DATE_FORMAT(order_date, '%W, %M %e, %Y') AS formatted_date
FROM orders;-- 3. 使用 CASE 对订单金额进行分类
SELECTorder_id,amount,CASEWHEN amount > 1000 THEN 'Large'WHEN amount > 500 THEN 'Medium'ELSE 'Small'END AS order_size
FROM orders;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/967318.shtml

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

相关文章

P14507 缺零分治 mexdnc题解

我真厉害。P14507 缺零分治 mexdnc 考时思路对了,但是代码太乱了,冗长复杂,难以调试,我直接放弃了,赛后补题,看题解,发现写的都是gousi(个人感觉,我确实看不懂写的都是啥),看部分题解发现我的思路确实没问题…

python多进程通信 —— 两进程通信 —— Pipe与Queue的通信性能对比

python多进程通信 —— 两进程通信 —— Pipe与Queue的通信性能对比运行代码:点击查看代码 import time from multiprocessing import Process, Pipe, Queuedef reader_pipe(pipe):output_p, input_p = pipeinput_p.c…

20232427 2025-2026-1 《网络与系统攻防技术》实验五实验报告

一、实验内容 本次实验聚焦信息搜集技术实践,核心内容包括五部分: 1.选择目标域名,通过多种工具查询其 DNS 注册信息、对应 IP 地址、IP 注册详情及地理位置; 2.尝试获取社交平台好友的 IP 地址并定位其地理位置;…

解决Elctron打包成功,IPC无法注册问题。

目录解决Elctron打包成功,IPC无法注册问题。项目地址 解决Elctron打包成功,IPC无法注册问题。 核心问题原因IPC 处理程序未注册:主进程未注册 resource:scanDirectory通道的处理程序 注册时序问题:处理程序注册可能…

Swagger开启账号验证访问

背景概述 在一些小型的Java后端开发项目工程中集成Swagger生成接口文档是一个比较普遍的做法,默认情况下访问Swagger文档是没有限制的,任何人都可以访问并进行调试。这在某些场合下可能并不合适,特别是对于一些具备…

标准解读——GB/T 46353—2025《信息技术 大数据 资料资产价值评估》国家标准

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

noip7

11.1311.13 挂分场。 t1 神秘淀粉质。 不想改了,反正noip不考(题解说的)。 赛时写了2h发现想假了,当场😡。 t2 简单构造。 但是挂分了。 每个球跳的次数求假了(不是这也能假)。 然后就挂了。 codewww #include…

代码背后的故事:docker容器名生成算法

让我们一探每次docker run背后自动生成的容器名是怎么生成的,以及生成算法背后的故事吧。我们知道容器化最大的好处是软件交付形成了一种标准化,其带来的好处是巨大且深远的,让开发者从解决各种环境差异的痛苦中解放…

在Windows系统置顶窗口不被Win+D快捷键影响

需求背景 Windows10系统,工作需要开多个应用程序,在使用双屏幕时(多显示器设置为:扩展这些显示器),希望使用另外一个屏幕做监控用,总时只要打开一个浏览器窗口盯着监控信息。但是经常需要通过快捷键Win+D快速返…

dns服务详解

dns服务 1、dns服务是什么叫做名称服务,作用就是将域名解析成ip地址,这个叫做正向解析将ip地址解析成域名叫做反向解析还提供邮件服务器的交换记录在互联网中有很重要的作用是一个c/s架构,每一个电脑就是一个dns客户…

一乐人物志

LEWISAK,真名 Woiler,CSP-S 2025 rk721,尽管进了高新一中博雅班,但是在二班和一四班的学生拉开了一年的 whk 差距,回家后每天推旮旯隔膜,被骂是虾头油渍处,ZR 模拟赛送了 1500 分后 rating 1479。初二时染上了不…

详细介绍:基于Spring Boot的高校实习实践管理系统(源码+论文+部署+安装)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

点分树

事实上比较朴素。 P6329 【模板】点分树 | 震波 大致思路是将点分治的那个过程建成一棵树。每一层的重心和下一层的中心连边。 这棵树有两个重要性质:树高保证为 \(\log n\),任意两点的 lca 一定在这两个点的路径上。…

HTTP请求走私漏洞介绍 - 实践

HTTP请求走私漏洞介绍 - 实践2025-11-16 19:46 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

20232428 2025-2026-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取信息 (2)尝试获取BBS、论坛、QQ、MSN中某一好友的IP地址,并查询获取该好友所在的具体地理位置 (3)使用nmap开源软件…

xml.etree.ElementTree 完全支持嵌套查找子元素,且有多种简洁实用的方式。

xml.etree.ElementTree 完全支持嵌套查找子元素,且有多种简洁实用的方式。 核心实现方式 1. XPath 路径直接嵌套查找(最常用) 通过 / 分隔层级,直接定位深层子元素,支持精确匹配标签名、属性等。 import xml.etre…

深入解析:Spring MVC 拦截器interceptor

深入解析:Spring MVC 拦截器interceptorpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

HarmonyOS 5 鸿蒙Context上下文机制与资源管理详解 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

《重生之我成为世界顶级黑客》第八章:未来野望

《重生之我成为世界顶级黑客》第八章:未来野望词穷,暂时没灵感了。龙傲天盯着桌上那个用40积分换来的企鹅玩偶,嘴角泛起一丝苦涩的笑意。这次的经历像一盆冷水,浇醒了他这些天因微小进步而产生的自满。企业的安全防…

打开工作空间时,但未在 DTD/架构中声明

OpenFromFile时,如果路径不存在或者不合法, 将报错,请先检查路径! {"未指定的错误\r\n\r\n使用了元素 {http://schemas.microsoft.com/windows/2005/02/color/WcsCommonProfileTypes}Text,但未在 DTD/架构中…