
MySQL 常用函数分类及示例:
数值计算函数:
ABS(x)
:返回 x 的绝对值。示例:SELECT ABS(-5);
结果:5。CEILING(x)
:向上取整。如:SELECT CEILING(3.14);
结果:4。FLOOR(x)
:向下取整。如:SELECT FLOOR(3.8);
结果:3。RAND()
:生成 0 到 1 之间的随机浮点数。ROUND(x, d)
:将 x 四舍五入到指定位数 d。如:SELECT ROUND(3.567, 2);
结果:3.57。TRUNCATE(x, d)
:截取 x 到指定位数 d。如:SELECT TRUNCATE(3.567, 1);
结果:3.5。POWER(x, y)
:计算 x 的 y 次幂。如:SELECT POWER(2, 3);
结果:8。SQRT(x)
:计算 x 的平方根。如:SELECT SQRT(4);
结果:2。MOD(x, y)
:返回 x 除以 y 的余数。如:SELECT MOD(10, 3);
结果:1。SIN(x)
:正弦函数。示例:SELECT SIN(30 * PI() 180);
结果:0.5。COS(x)
:余弦函数。如:SELECT COS(60 * PI() 180);
结果:0.5。TAN(x)
:正切函数。COT(x)
:余切函数。ASIN(x)
:反正弦函数。ACOS(x)
:反余弦函数。ATAN(x)
:反正切函数。DEGREES(x)
:将弧度转换为角度。RADIANS(x)
:将角度转换为弧度。
字符串函数:
CONCAT(s1, s2,...)
:连接多个字符串。如:SELECT CONCAT('Hello, ', 'World!');
结果:"Hello, World!"。SUBSTRING(s, start, length)
:截取字符串。如:SELECT SUBSTRING('HelloWorld', 6, 5);
结果:"World"。LEFT(s, n)
:从左边取 n 个字符。如:SELECT LEFT('Hello', 3);
结果:"Hel"。RIGHT(s, n)
:从右边取 n 个字符。如:SELECT RIGHT('Hello', 2);
结果:"lo"。LENGTH(s)
:字符串长度。如:SELECT LENGTH('Hello');
结果:5。UPPER(s)
:转换为大写。如:SELECT UPPER('hello');
结果:"HELLO"。LOWER(s)
:转换为小写。如:SELECT LOWER('HELLO');
结果:"hello"。TRIM(s)
:去除首尾空格。如:SELECT TRIM(' Hello ');
结果:"Hello"。LTRIM(s)
:去除左边空格。如:SELECT LTRIM(' Hello');
结果:"Hello"。RTRIM(s)
:去除右边空格。如:SELECT RTRIM('Hello ');
结果:"Hello"。REPLACE(s, old, new)
:替换字符串。如:SELECT REPLACE('Hello', 'e', 'a');
结果:"Hallo"。STRCMP(s1, s2)
:比较字符串。LOCATE(substr, str)
:查找子串在字符串中的位置。如:SELECT LOCATE('l', 'Hello');
结果:2。SUBSTRING_INDEX(s, delim, count)
:按分隔符截取。如:SELECT SUBSTRING_INDEX('a,b,c', ',', 2);
结果:"a,b"。CONCAT_WS(sep, s1, s2,...)
:用指定分隔符连接。如:SELECT CONCAT_WS(',', 'a', 'b', 'c');
结果:"a,b,c"。FIELD(s, s1, s2,...)
:返回 s 在列表中的位置。FIND_IN_SET(s, str)
:在逗号分隔的字符串中查找。
日期时间函数:
NOW()
:当前日期时间。如:SELECT NOW();
结果:如"2023-10-12 15:30:00"。CURRENT_DATE()
:当前日期。如:SELECT CURRENT_DATE;
结果:"2023-10-12"。CURRENT_TIME()
:当前时间。如:SELECT CURRENT_TIME;
结果:"15:30:00"。DATE(s)
:提取日期部分。如:SELECT DATE('2023-10-12 15:30:00');
结果:"2023-10-12"。TIME(s)
:提取时间部分。如:SELECT TIME('2023-10-12 15:30:00');
结果:"15:30:00"。YEAR(s)
:获取年份。如:SELECT YEAR('2023-10-12');
结果:2023。MONTH(s)
:获取月份。如:SELECT MONTH('2023-10-12');
结果:10。DAY(s)
:获取日。如:SELECT DAY('2023-10-12');
结果:12。HOUR(s)
:获取小时。如:SELECT HOUR('2023-10-12 15:30:00');
结果:15。MINUTE(s)
:获取分钟。如:SELECT MINUTE('2023-10-12 15:30:00');
结果:30。SECOND(s)
:获取秒。如:SELECT SECOND('2023-10-12 15:30:00');
结果:0。DATE_ADD(date, INTERVAL expr unit)
:日期增加。如:SELECT DATE_ADD('2023-10-12', INTERVAL 1 DAY);
结果:"2023-10-13"。DATE_SUB(date, INTERVAL expr unit)
:日期减少。如:SELECT DATE_SUB('2023-10-12', INTERVAL 1 DAY);
结果:"2023-10-11"。DATEDIFF(d1, d2)
:计算日期差。如:SELECT DATEDIFF('2023-10-12', '2023-10-10');
结果:2。FROM_UNIXTIME(t)
:将 Unix 时间戳转换为日期时间。TO_DAYS(date)
:将日期转换为天数。
聚合函数:
SUM(column)
:求和。如:SELECT SUM(salary) FROM employees;AVG(column)
:平均值。如:SELECT AVG(salary) FROM employees;MIN(column)
:最小值。如:SELECT MIN(salary) FROM employees;MAX(column)
:最大值。如:SELECT MAX(salary) FROM employees;COUNT(*)
:计数。如:SELECT COUNT(*) FROM employees;
转换函数:
CAST(value AS type)
:进行类型转换。如:SELECT CAST('123' AS SIGNED);
结果:123。CONVERT(value, type)
:类似 CAST。
条件判断函数:
IF(condition, value1, value2)
:根据条件返回不同值。如:SELECT IF(1>2, '真', '假');
结果:"假"。IFNULL(expr1, expr2)
:处理空值。如:SELECT IFNULL(NULL, '默认值');
结果:"默认值"。COALESCE(value1, value2,...)
:返回第一个非空值。
其他函数:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE default_result END
:多条件判断。如:SELECT CASE WHEN age > 30 THEN '大龄' WHEN

点 击 下 方 关注+星标 公众号





