MySQL 函数
在 MySQL 中,函数(Functions)是一种用于执行特定任务的命名的、可重复使用的代码块。MySQL 提供了许多内置函数,用于执行各种操作,例如数学计算、字符串操作、日期处理等。除了内置函数,MySQL还支持用户定义函数(User-Defined Functions, UDF),允许开发者根据需要编写自定义函数。
内置函数示例
以下是一些常用的 MySQL 内置函数及其用法示例:
1、数学函数
ABS(x):返回x的绝对值。
SELECT ABS(-3); -- 结果为 3
ROUND(x, d):返回x的四舍五入值,d是小数点右侧的位数。
SELECT ROUND(3.1415, 2); -- 结果为 3.14
2、字符串函数
CONCAT(str1, str2, ...):连接字符串。
SELECT CONCAT('Hello', ' ', 'World'); -- 结果为 'Hello World'
SUBSTRING(str, start, length):返回从字符串str中从start位置开始的长度为length的子字符串。
SELECT SUBSTRING('MySQL Functions', 7, 9); -- 结果为 'Functions'
3、日期和时间函数
NOW():返回当前日期和时间。
SELECT NOW(); -- 返回当前日期和时间,如 '2021-08-01 9:00:00'
DATE_FORMAT(date, format):返回一个格式化的日期/时间字符串。
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 结果为 '2021-08-01'
聚合函数
COUNT(expr):返回匹配指定条件的行数。
SELECT COUNT(*) FROM users; -- 返回用户表中的行数
SUM(expr):返回指定列的总和。
SELECT SUM(salary) FROM teachers; -- 返回所有教师薪资的总和
AVG(expr):返回指定列的总和。
SELECT AVG(salary) FROM teachers; -- 返回所有教师的平均薪资
用户定义函数(UDF)
MySQL 允许开发者编写自定义函数,以便满足特定的业务需求。自定义函数可以在 SQL 查询中像内置函数一样使用,例如:
CREATE FUNCTION my_function(param1 INT, param2 INT) RETURNS INT BEGIN DECLARE result INT; -- 自定义逻辑 SET result = param1 * param2; RETURN result; END;
调用自定义函数
SELECT my_function(2, 3); -- 返回 6(2 * 3)
总结
MySQL 提供了丰富的内置函数来处理各种数据操作需求,包括数学运算、字符串处理、日期时间操作等。此外,开发者还可以利用用户定义函数(UDF)扩展 MySQL 的功能,使其更加适应特定的业务场景和数据处理需求。通过合理利用函数,可以简化 SQL 查询和数据处理的复杂度,提高数据库应用的效率和灵活性。