Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3155

【MySQL】函数

$
0
0

MySQL 函数详解

MySQL 是一个流行的开源关系型数据库管理系统,广泛应用于各种应用程序中。MySQL 提供了丰富的函数,用于数据处理、查询优化和系统管理。本文将详细介绍 MySQL 中的各种函数,包括字符串函数、数值函数、日期和时间函数、聚合函数等。

一、字符串函数

1. CONCAT

CONCAT 函数用于连接两个或多个字符串。

SELECT CONCAT('Hello', ' ', 'World') AS greeting;

结果:

+----------+
| greeting |
+----------+
| Hello World |
+----------+

2. LENGTH

LENGTH 函数返回字符串的长度(以字节为单位)。

SELECT LENGTH('Hello') AS length;

结果:

+--------+
| length |
+--------+
| 5      |
+--------+

3. SUBSTRING

SUBSTRING 函数用于截取字符串的子串。

SELECT SUBSTRING('Hello World', 1, 5) AS sub_string;

结果:

+------------+
| sub_string |
+------------+
| Hello      |
+------------+

二、数值函数

1. ABS

ABS 函数返回数值的绝对值。

SELECT ABS(-123) AS absolute_value;

结果:

+----------------+
| absolute_value |
+----------------+
| 123            |
+----------------+

2. ROUND

ROUND 函数用于对数值进行四舍五入。

SELECT ROUND(123.456, 2) AS rounded_value;

结果:

+--------------+
| rounded_value |
+--------------+
| 123.46       |
+--------------+

3. CEIL 和 FLOOR

CEIL 函数返回大于或等于指定数值的最小整数,FLOOR 函数返回小于或等于指定数值的最大整数。

SELECT CEIL(123.45) AS ceiling_value, FLOOR(123.45) AS floor_value;

结果:

+---------------+------------+
| ceiling_value | floor_value |
+---------------+------------+
| 124           | 123        |
+---------------+------------+

三、日期和时间函数

1. NOW

NOW 函数返回当前日期和时间。

SELECT NOW() AS current_datetime;

结果:

+---------------------+
| current_datetime    |
+---------------------+
| 2024-06-16 12:34:56 |
+---------------------+

2. DATE_FORMAT

DATE_FORMAT 函数用于格式化日期。

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS formatted_date;

结果:

+----------------+
| formatted_date |
+----------------+
| 2024-06-16     |
+----------------+

3. DATE_ADD 和 DATE_SUB

DATE_ADDDATE_SUB 函数用于日期的加减操作。

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 函数用于统计满足条件的行数。

SELECT COUNT(*) AS total_count FROM employees;

结果:

+-------------+
| total_count |
+-------------+
| 100         |
+-------------+

2. SUM

SUM 函数用于计算数值列的总和。

SELECT SUM(salary) AS total_salary FROM employees;

结果:

+--------------+
| total_salary |
+--------------+
| 500000       |
+--------------+

3. AVG

AVG 函数用于计算数值列的平均值。

SELECT AVG(salary) AS average_salary FROM employees;

结果:

+----------------+
| average_salary |
+----------------+
| 5000           |
+----------------+

4. MAX 和 MIN

MAX 函数返回数值列的最大值,MIN 函数返回数值列的最小值。

SELECT MAX(salary) AS max_salary, MIN(salary) AS min_salary FROM employees;

结果:

+------------+------------+
| max_salary | min_salary |
+------------+------------+
| 10000      | 2000       |
+------------+------------+

五、条件判断函数

1. IF

IF 函数用于条件判断。

SELECT name, IF(salary > 5000, 'High', 'Low') AS salary_level FROM employees;

结果:

+------+--------------+
| name | salary_level |
+------+--------------+
| John | High         |
| Jane | Low          |
+------+--------------+

2. CASE

CASE 函数用于多条件判断。

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)。开发者可以创建自定义函数来满足特定需求。

创建自定义函数

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 ;

使用自定义函数

SELECT name, salary, calculate_bonus(salary) AS bonus FROM employees;

结果:

+------+--------+--------+
| name | salary | bonus  |
+------+--------+--------+
| John | 8000   | 800    |
| Jane | 4500   | 450    |
+------+--------+--------+

总结

MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。


思维导图:MySQL 函数

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 中的各种函数,提升数据处理和查询的效率。


Viewing all articles
Browse latest Browse all 3155