MySQL函数

MySQL 函数概述

MySQL 函数分为内置函数和用户自定义函数(UDF)。内置函数包括数学、字符串、日期、聚合等函数,用户自定义函数可以通过 C/C++ 编写扩展。

常用内置函数分类

数学函数
ABS(x)          -- 绝对值
CEIL(x)         -- 向上取整
FLOOR(x)        -- 向下取整
ROUND(x, d)     -- 四舍五入保留d位小数
RAND()          -- 0到1的随机数

字符串函数
CONCAT(s1, s2)  -- 字符串连接
SUBSTR(s, n, l) -- 从s的第n位截取l长度
UPPER(s)        -- 转大写
LOWER(s)        -- 转小写
LENGTH(s)       -- 字符串长度

日期时间函数
NOW()           -- 当前日期时间
CURDATE()       -- 当前日期
DATE_FORMAT(d, f) -- 格式化日期
DATEDIFF(d1, d2) -- 日期差值
DATE_ADD(d, INTERVAL n TYPE) -- 日期加减

聚合函数
COUNT()         -- 计数
SUM()           -- 求和
AVG()           -- 平均值
MAX()           -- 最大值
MIN()           -- 最小值

用户自定义函数

创建自定义函数需要使用 CREATE FUNCTION 语句:

CREATE FUNCTION function_name(parameters)
RETURNS return_type
BEGIN
    -- 函数体
    RETURN value;
END;

函数示例

计算阶乘的存储函数:

CREATE FUNCTION factorial(n INT)
RETURNS INT
BEGIN
    DECLARE result INT DEFAULT 1;
    DECLARE i INT DEFAULT 1;
    WHILE i <= n DO
        SET result = result * i;
        SET i = i + 1;
    END WHILE;
    RETURN result;
END;

调用自定义函数:

SELECT factorial(5);  -- 返回120

注意事项

函数必须有返回值 函数中可以包含复杂的逻辑和流程控制 函数名不要与内置函数冲突 函数通常用于计算和返回单个值

如果您希望支持我创作更多类似内容,可以点击下面的打赏功能,谢谢。

### MYSQL 函数概述 在 MySQL 数据库管理系统中,函数是一类重要的工具,可以用来执行各种计算、转换和其他操作。这些函数分为内置函数和自定义函数两大类。以下是常见的 MySQL 内置函数分类及其具体用法。 --- #### **1. 字符串函数** 字符串函数主要用于处理字符型数据,支持拼接、截取、替换等功能。 - **`CONCAT(str1, str2, ...)`**: 将多个字符串连接成一个字符串。 ```sql SELECT CONCAT('Hello', ' ', 'World'); -- 返回 "Hello World" ``` - **`SUBSTRING(str, pos, len)`**: 提取子字符串,从 `pos` 开始提取长度为 `len` 的部分。 ```sql SELECT SUBSTRING('MySQL Function', 7, 8); -- 返回 "Function" ``` - **`REPLACE(str, from_str, to_str)`**: 替换字符串中的部分内容。 ```sql SELECT REPLACE('Database Management System', 'Management', 'Admin'); -- 返回 "Database Admin System" ``` - **`UPPER(str)` 和 `LOWER(str)`**: 转换字符串大小写。 ```sql SELECT UPPER('mysql'), LOWER('MYSQL'); -- 返回 "MYSQL", "mysql" ``` 以上内容来源于常见字符串函数介绍[^2]。 --- #### **2. 日期时间函数** 日期时间函数用于处理与时间和日期相关的数据。 - **`NOW()`**: 获取当前的日期和时间。 ```sql SELECT NOW(); -- 返回类似于 "2023-10-05 14:30:00" ``` - **`DATE(date_time_expr)`**: 提取日期部分。 ```sql SELECT DATE('2023-10-05 14:30:00'); -- 返回 "2023-10-05" ``` - **`DATE_FORMAT(date, format)`**: 根据指定格式化模板返回日期/时间字符串。 ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 自定义格式输出 ``` 相关内容可参见日期函数说明[^2]。 --- #### **3. 数学函数** 数学函数提供了基本的数值运算能力。 - **`ABS(num)`**: 计算绝对值。 ```sql SELECT ABS(-10); -- 返回 10 ``` - **`ROUND(num, decimals)`**: 对数字四舍五入到指定位数的小数。 ```sql SELECT ROUND(123.456, 2); -- 返回 123.46
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逼得大师天才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值