MySQL 函数
                           
天天向上
发布: 2025-02-18 23:09:25

原创
17 人浏览过

MySQL 提供了丰富的内置函数,供开发者在 SQL 查询中使用。MySQL 函数可以分为不同类型,如字符串函数、数学函数、日期和时间函数、聚合函数等。以下是一些常见的 MySQL 函数及其实例,帮助你深入理解如何使用它们。

1. 字符串函数

1.1 CONCAT()

CONCAT() 函数用于连接多个字符串。

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

输出:

greeting
----------------
Hello World

1.2 LENGTH()

LENGTH() 函数返回字符串的字节数。

SELECT LENGTH('Hello') AS length;

输出:

length
------
5

1.3 UPPER() / LOWER()

UPPER() 将字符串转换为大写,LOWER() 将字符串转换为小写。

SELECT UPPER('hello') AS uppercase, LOWER('HELLO') AS lowercase;

输出:

uppercase  | lowercase
-----------|----------
HELLO      | hello

1.4 TRIM()

TRIM() 去掉字符串两端的空格或其他字符。

SELECT TRIM(' ' FROM '  Hello  ') AS trimmed;

输出:

trimmed
-------
Hello

1.5 SUBSTRING()

SUBSTRING() 函数返回字符串的子串。

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

输出:

substring
----------
Hello

2. 数学函数

2.1 ROUND()

ROUND() 函数用于对数字进行四舍五入。

SELECT ROUND(123.456, 2) AS rounded_value;

输出:

rounded_value
--------------
123.46

2.2 FLOOR()CEIL()

FLOOR() 返回小于或等于指定数字的最大整数,CEIL() 返回大于或等于指定数字的最小整数。

SELECT FLOOR(123.456) AS floor_value, CEIL(123.456) AS ceil_value;

输出:

floor_value | ceil_value
------------|------------
123         | 124

2.3 ABS()

ABS() 返回数字的绝对值。

SELECT ABS(-123) AS absolute_value;

输出:

absolute_value
---------------
123

2.4 MOD()

MOD() 返回两个数字相除的余数。

SELECT MOD(10, 3) AS remainder;

输出:

remainder
----------
1

3. 日期和时间函数

3.1 NOW()CURDATE()

NOW() 返回当前的日期和时间,CURDATE() 返回当前的日期。

SELECT NOW() AS current_datetime, CURDATE() AS current_date;

输出:

current_datetime        | current_date
------------------------|--------------
2025-02-18 10:00:00    | 2025-02-18

3.2 DATE_ADD()DATE_SUB()

DATE_ADD() 用于给日期加上指定的时间间隔,DATE_SUB() 用于从日期中减去指定的时间间隔。

SELECT DATE_ADD('2025-02-18', INTERVAL 5 DAY) AS date_added,
       DATE_SUB('2025-02-18', INTERVAL 5 DAY) AS date_subtracted;

输出:

date_added | date_subtracted
-----------|----------------
2025-02-23 | 2025-02-13

3.3 DATEDIFF()

DATEDIFF() 函数返回两个日期之间的天数。

SELECT DATEDIFF('2025-02-18', '2025-02-10') AS date_diff;

输出:

date_diff
----------
8

3.4 YEAR(), MONTH(), DAY()

这些函数分别提取日期的年份、月份和日期部分。

SELECT YEAR('2025-02-18') AS year,
       MONTH('2025-02-18') AS month,
       DAY('2025-02-18') AS day;

输出:

year | month | day
-----|-------|-----
2025 | 2     | 18

4. 聚合函数

4.1 COUNT()

COUNT() 函数返回查询结果中行的数量。

SELECT COUNT(*) AS total_employees FROM employees;

输出:

total_employees
----------------
100

4.2 SUM()

SUM() 函数返回列中所有值的总和。

SELECT SUM(salary) AS total_salary FROM employees;

输出:

total_salary
-------------
500000

4.3 AVG()

AVG() 函数返回列中所有值的平均值。

SELECT AVG(salary) AS average_salary FROM employees;

输出:

average_salary
---------------
5000

4.4 MAX()MIN()

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

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

输出:

max_salary | min_salary
-----------|-----------
10000      | 3000

5. 条件函数

5.1 IF()

IF() 函数根据条件返回不同的值。

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

5.2 CASE

CASE 是 SQL 中的条件表达式,可以用于多个条件的判断。

SELECT 
    CASE 
        WHEN salary > 8000 THEN 'High'
        WHEN salary > 5000 THEN 'Medium'
        ELSE 'Low'
    END AS salary_level
FROM employees;

6. 类型转换函数

6.1 CAST()CONVERT()

CAST()CONVERT() 用于将一个数据类型转换为另一个数据类型。

SELECT CAST('123.45' AS UNSIGNED) AS cast_value,
       CONVERT('123.45', SIGNED) AS convert_value;

输出:

cast_value | convert_value
-----------|--------------
123        | 123

7. 总结

  • 字符串函数:如 CONCAT()LENGTH()UPPER() 等,用于操作字符串。
  • 数学函数:如 ROUND()FLOOR()ABS() 等,用于数学计算。
  • 日期和时间函数:如 NOW()DATE_ADD()DATEDIFF() 等,用于操作日期和时间。
  • 聚合函数:如 COUNT()SUM()AVG() 等,用于聚合数据。
  • 条件函数:如 IF()CASE,用于根据条件返回不同的结果。
  • 类型转换函数:如 CAST()CONVERT(),用于类型转换。

MySQL 函数提供了强大的数据处理能力,可以在 SQL 查询中灵活地处理数据和计算,提升查询效率和可读性。

发表回复 0

Your email address will not be published. Required fields are marked *