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