Loading... ### MySQL 函数详解 MySQL 是一个流行的开源关系型数据库管理系统,广泛应用于各种应用程序中。MySQL 提供了丰富的函数,用于数据处理、查询优化和系统管理。本文将详细介绍 MySQL 中的各种函数,包括字符串函数、数值函数、日期和时间函数、聚合函数等。 ![](https://www.8kiz.cn/usr/uploads/2024/06/3750529767.png) ### 一、字符串函数 #### 1. CONCAT `CONCAT` 函数用于连接两个或多个字符串。 ```sql SELECT CONCAT('Hello', ' ', 'World') AS greeting; ``` 结果: ``` +----------+ | greeting | +----------+ | Hello World | +----------+ ``` #### 2. LENGTH `LENGTH` 函数返回字符串的长度(以字节为单位)。 ```sql SELECT LENGTH('Hello') AS length; ``` 结果: ``` +--------+ | length | +--------+ | 5 | +--------+ ``` #### 3. SUBSTRING `SUBSTRING` 函数用于截取字符串的子串。 ```sql SELECT SUBSTRING('Hello World', 1, 5) AS sub_string; ``` 结果: ``` +------------+ | sub_string | +------------+ | Hello | +------------+ ``` ### 二、数值函数 #### 1. ABS `ABS` 函数返回数值的绝对值。 ```sql SELECT ABS(-123) AS absolute_value; ``` 结果: ``` +----------------+ | absolute_value | +----------------+ | 123 | +----------------+ ``` #### 2. ROUND `ROUND` 函数用于对数值进行四舍五入。 ```sql SELECT ROUND(123.456, 2) AS rounded_value; ``` 结果: ``` +--------------+ | rounded_value | +--------------+ | 123.46 | +--------------+ ``` #### 3. CEIL 和 FLOOR `CEIL` 函数返回大于或等于指定数值的最小整数,`FLOOR` 函数返回小于或等于指定数值的最大整数。 ```sql SELECT CEIL(123.45) AS ceiling_value, FLOOR(123.45) AS floor_value; ``` 结果: ``` +---------------+------------+ | ceiling_value | floor_value | +---------------+------------+ | 124 | 123 | +---------------+------------+ ``` ### 三、日期和时间函数 #### 1. NOW `NOW` 函数返回当前日期和时间。 ```sql SELECT NOW() AS current_datetime; ``` 结果: ``` +---------------------+ | current_datetime | +---------------------+ | 2024-06-16 12:34:56 | +---------------------+ ``` #### 2. DATE_FORMAT `DATE_FORMAT` 函数用于格式化日期。 ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS formatted_date; ``` 结果: ``` +----------------+ | formatted_date | +----------------+ | 2024-06-16 | +----------------+ ``` #### 3. DATE_ADD 和 DATE_SUB `DATE_ADD` 和 `DATE_SUB` 函数用于日期的加减操作。 ```sql SELECT DATE_ADD('2024-06-16', INTERVAL 10 DAY) AS new_date; SELECT DATE_SUB('2024-06-16', INTERVAL 5 DAY) AS new_date; ``` 结果: ``` +------------+ | new_date | +------------+ | 2024-06-26 | +------------+ +------------+ | new_date | +------------+ | 2024-06-11 | +------------+ ``` ### 四、聚合函数 #### 1. COUNT `COUNT` 函数用于统计满足条件的行数。 ```sql SELECT COUNT(*) AS total_count FROM employees; ``` 结果: ``` +-------------+ | total_count | +-------------+ | 100 | +-------------+ ``` #### 2. SUM `SUM` 函数用于计算数值列的总和。 ```sql SELECT SUM(salary) AS total_salary FROM employees; ``` 结果: ``` +--------------+ | total_salary | +--------------+ | 500000 | +--------------+ ``` #### 3. AVG `AVG` 函数用于计算数值列的平均值。 ```sql SELECT AVG(salary) AS average_salary FROM employees; ``` 结果: ``` +----------------+ | average_salary | +----------------+ | 5000 | +----------------+ ``` #### 4. MAX 和 MIN `MAX` 函数返回数值列的最大值,`MIN` 函数返回数值列的最小值。 ```sql SELECT MAX(salary) AS max_salary, MIN(salary) AS min_salary FROM employees; ``` 结果: ``` +------------+------------+ | max_salary | min_salary | +------------+------------+ | 10000 | 2000 | +------------+------------+ ``` ### 五、条件判断函数 #### 1. IF `IF` 函数用于条件判断。 ```sql SELECT name, IF(salary > 5000, 'High', 'Low') AS salary_level FROM employees; ``` 结果: ``` +------+--------------+ | name | salary_level | +------+--------------+ | John | High | | Jane | Low | +------+--------------+ ``` #### 2. CASE `CASE` 函数用于多条件判断。 ```sql SELECT name, CASE WHEN salary > 7000 THEN 'Very High' WHEN salary > 5000 THEN 'High' ELSE 'Average' END AS salary_level FROM employees; ``` 结果: ``` +------+-------------+ | name | salary_level | +------+-------------+ | John | Very High | | Jane | Average | +------+-------------+ ``` ### 六、用户自定义函数 除了内置函数,MySQL 还支持用户自定义函数(UDF)。开发者可以创建自定义函数来满足特定需求。 #### 创建自定义函数 ```sql DELIMITER // CREATE FUNCTION calculate_bonus(salary DECIMAL(10,2)) RETURNS DECIMAL(10,2) BEGIN DECLARE bonus DECIMAL(10,2); SET bonus = salary * 0.10; RETURN bonus; END // DELIMITER ; ``` #### 使用自定义函数 ```sql SELECT name, salary, calculate_bonus(salary) AS bonus FROM employees; ``` 结果: ``` +------+--------+--------+ | name | salary | bonus | +------+--------+--------+ | John | 8000 | 800 | | Jane | 4500 | 450 | +------+--------+--------+ ``` ### 总结 MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。 --- **思维导图:MySQL 函数** ```mermaid graph TD; A[MySQL 函数] --> B[字符串函数] B --> B1[CONCAT] B --> B2[LENGTH] B --> B3[SUBSTRING] A --> C[数值函数] C --> C1[ABS] C --> C2[ROUND] C --> C3[CEIL 和 FLOOR] A --> D[日期和时间函数] D --> D1[NOW] D --> D2[DATE_FORMAT] D --> D3[DATE_ADD 和 DATE_SUB] A --> E[聚合函数] E --> E1[COUNT] E --> E2[SUM] E --> E3[AVG] E --> E4[MAX 和 MIN] A --> F[条件判断函数] F --> F1[IF] F --> F2[CASE] A --> G[用户自定义函数] G --> G1[创建自定义函数] G --> G2[使用自定义函数] ``` 通过以上详解和思维导图,可以帮助开发者全面理解和高效使用 MySQL 中的各种函数,提升数据处理和查询的效率。 最后修改:2024 年 06 月 17 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏