MySQL提供了丰富的内置函数,涵盖了字符串操作、数字计算、日期和时间处理、条件判断、聚合计算等多个方面。这些函数可以帮助开发者在查询和数据处理时更高效地完成任务。下面是对MySQL中常见的函数分类及其主要函数的介绍:
字符串函数
-
CONCAT():连接字符串
sqlSELECT CONCAT('Hello, ', 'world!'); -- 输出: 'Hello, world!'
-
SUBSTRING() / SUBSTR():截取子字符串
sqlSELECT SUBSTRING('Hello, world!', 8, 5); -- 输出: 'world'
-
LENGTH():获取字符串长度
sqlSELECT LENGTH('Hello'); -- 输出: 5
-
UPPER():将字符串转换为大写
sqlSELECT UPPER('hello'); -- 输出: 'HELLO'
-
LOWER():将字符串转换为小写
sqlSELECT LOWER('HELLO'); -- 输出: 'hello'
-
TRIM():去除字符串首尾的空格
sqlSELECT TRIM(' Hello '); -- 输出: 'Hello'
-
REPLACE():替换字符串中的子字符串
sqlSELECT REPLACE('Hello, world!', 'world', 'there'); -- 输出: 'Hello, there!'
数字函数
-
ABS():取绝对值
sqlSELECT ABS(-10); -- 输出: 10
-
CEIL() / CEILING():向上取整
sqlSELECT CEIL(4.2); -- 输出: 5
-
FLOOR():向下取整
sqlSELECT FLOOR(4.8); -- 输出: 4
-
ROUND():四舍五入
sqlSELECT ROUND(4.567, 2); -- 输出: 4.57
-
MOD():取模(取余数)
sqlSELECT MOD(10, 3); -- 输出: 1
-
POWER():幂运算
sqlSELECT POWER(2, 3); -- 输出: 8
-
SQRT():开平方
sqlSELECT SQRT(16); -- 输出: 4
日期和时间函数
-
NOW():当前日期和时间
sqlSELECT NOW(); -- 输出当前日期和时间
-
CURDATE():当前日期
sqlSELECT CURDATE(); -- 输出当前日期
-
CURTIME():当前时间
sqlSELECT CURTIME(); -- 输出当前时间
-
DATE():提取日期部分
sqlSELECT DATE(NOW()); -- 输出当前日期部分
-
TIME():提取时间部分
sqlSELECT TIME(NOW()); -- 输出当前时间部分
-
DATEDIFF():计算日期差
sqlSELECT DATEDIFF('2024-12-31', '2024-01-01'); -- 输出: 364
-
DATE_ADD():日期加上时间间隔
sqlSELECT DATE_ADD('2024-01-01', INTERVAL 10 DAY); -- 输出: '2024-01-11'
-
DATE_SUB():日期减去时间间隔
sqlSELECT DATE_SUB('2024-01-01', INTERVAL 10 DAY); -- 输出: '2023-12-22'
条件函数
-
IF():条件判断
sqlSELECT IF(1 > 0, 'true', 'false'); -- 输出: 'true'
-
IFNULL():判断是否为NULL
sqlSELECT IFNULL(NULL, 'default'); -- 输出: 'default'
-
CASE:条件表达式
sqlSELECT CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' ELSE 'F' END AS grade FROM students;
聚合函数
-
COUNT():计数
sqlSELECT COUNT(*) FROM employees; -- 输出员工总数
-
SUM():求和
sqlSELECT SUM(salary) FROM employees; -- 输出薪水总和
-
AVG():平均值
sqlSELECT AVG(salary) FROM employees; -- 输出平均薪水
-
MAX():最大值
sqlSELECT MAX(salary) FROM employees; -- 输出最大薪水
-
MIN():最小值
sqlSELECT MIN(salary) FROM employees; -- 输出最小薪水
JSON 函数(从MySQL 5.7开始)
-
JSON_EXTRACT():提取JSON数据
sqlSELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); -- 输出: 'John'
-
JSON_UNQUOTE():去掉JSON字符串的引号
sqlSELECT JSON_UNQUOTE(JSON_EXTRACT('{"name": "John"}', '$.name')); -- 输出: John
-
JSON_OBJECT():创建JSON对象
sqlSELECT JSON_OBJECT('name', 'John', 'age', 30); -- 输出: {"name": "John", "age": 30}
-
JSON_ARRAY():创建JSON数组
sqlSELECT JSON_ARRAY('apple', 'banana', 'cherry'); -- 输出: ["apple", "banana", "cherry"]
-
JSON_MERGE():合并两个JSON对象
sqlSELECT JSON_MERGE('{"name": "John"}', '{"age": 30}'); -- 输出: {"name": "John", "age": 30}