MySQL常用函数及其用法总结

MySQL 提供了一系列强大的函数,用于数据查询、数据处理和数据转换。以下是一些常用的 MySQL 函数及其用法的详细总结。

1. 字符串函数

1.1 CONCAT

将多个字符串连接成一个字符串。

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

输出结果为 Hello World

1.2 SUBSTRING

从字符串中提取子字符串。

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

输出结果为 Hello

1.3 LENGTH

返回字符串的长度。

SELECT LENGTH('Hello World') AS length;

输出结果为 11

1.4 UPPER 和 LOWER

将字符串转换为大写或小写。

SELECT UPPER('Hello World') AS upper, LOWER('Hello World') AS lower;
​

输出结果为 HELLO WORLD 和 hello world

1.5 TRIM

移除字符串首尾的空格或其他指定字符。

SELECT TRIM('  Hello World  ') AS trimmed;

输出结果为 Hello World

2. 数值函数

2.1 ABS

返回数值的绝对值。

SELECT ABS(-10) AS absolute_value;

输出结果为 10

2.2 ROUND

将数值四舍五入到指定的小数位。

SELECT ROUND(123.456, 2) AS rounded_value;

输出结果为 123.46

2.3 CEIL 和 FLOOR

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

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

输出结果为 124 和 123

2.4 MOD

返回两个数相除的余数。

SELECT MOD(10, 3) AS remainder;

输出结果为 1

3. 日期和时间函数

3.1 NOW

返回当前的日期和时间。

SELECT NOW() AS current_datetime;

输出结果为当前的日期和时间,例如 2023-07-15 14:30:00

3.2 CURDATE 和 CURTIME

分别返回当前的日期和时间。

SELECT CURDATE() AS current_date, CURTIME() AS current_time;
​

输出结果为 2023-07-15 和 14:30:00

3.3 DATE_FORMAT

按照指定格式返回日期或时间。

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_datetime;

输出结果为 2023-07-15 14:30:00

3.4 DATEDIFF

计算两个日期之间的天数。

SELECT DATEDIFF('2023-07-15', '2023-07-01') AS days_difference;

输出结果为 14

4. 聚合函数

4.1 COUNT

返回满足条件的行数。

SELECT COUNT(*) AS total_count FROM users;

4.2 SUM

返回数值列的总和。

SELECT SUM(price) AS total_price FROM orders;

4.3 AVG

返回数值列的平均值。

SELECT AVG(age) AS average_age FROM users;

4.4 MAX 和 MIN

分别返回数值列的最大值和最小值。

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

5. 条件函数

5.1 IF

返回条件为真或假时的不同结果。

SELECT name, IF(age >= 18, 'Adult', 'Minor') AS age_group FROM users;

5.2 IFNULL

如果表达式的结果为 NULL,则返回指定的值。

SELECT name, IFNULL(phone, 'N/A') AS phone_number FROM contacts;

5.3 CASE

返回不同条件下的不同结果,类似于 SQL 中的 switch-case 语句。

SELECT name,
       CASE
           WHEN age < 18 THEN 'Minor'
           WHEN age >= 18 AND age < 60 THEN 'Adult'
           ELSE 'Senior'
       END AS age_group
FROM users;
posted @ 2025-08-18 15:52  康帅服  阅读(13)  评论(0)    收藏  举报