MySQL内置函数
概述
MySQL函数是一种可重用的代码块,用于执行特定任务并返回结果。
函数可以简化复杂查询和数据处理操作,并允许我们在查询过程中实现自定义逻辑。
例如:
二、数值计算函数
ABS(x)
返回 x 的绝对值。
SELECT ABS(-7.5); -- 输出 7.5
SELECT ABS(10); -- 输出 10
CEILING(x) 或 CEIL(x)
返回不小于 x 的最小整数值。
SELECT CEILING(7.5); -- 输出 8
SELECT CEIL(-7.5); -- 输出 -7
FLOOR(x)
返回不大于 x 的最大整数值。
SELECT FLOOR(7.5); -- 输出 7
SELECT FLOOR(-7.5); -- 输出 -8
MOD(x, y)
返回 x 除以 y 的余数。
SELECT MOD(5, 2); -- 输出 1
SELECT MOD(5.2, 2); -- 输出 1.2
RAND([N])
返回一个 0 到 1 之间的随机数,如果指定了 N,则返回一个 0 到 N-1 之间的随机整数。
SELECT RAND(); -- 输出 介于 0 和 1 之间的浮点数
SELECT RAND(3); -- 输出 0、1 或 2 中的一个整数
ROUND(x, [D])
将 x 四舍五入为 D 位小数。如果未指定 D,则默认为 0。
SELECT ROUND(7.578); -- 输出 8
SELECT ROUND(7.578, 1); -- 输出 7.6
三、日期时间处理函数
CURDATE()
返回当前日期。
SELECT CURDATE(); -- 输出当前日期
CURTIME()
SELECT CURTIME(); -- 输出当前时间
NOW()
SELECT NOW(); -- 输出当前日期和时间
DATE_FORMAT(date, format)
将日期格式化为指定的格式。
SELECT DATE_FORMAT('2023-03-31', '%Y-%m-%d'); -- 输出 2023-03-31
SELECT DATE_FORMAT('2023-03-31', '%W %M %Y'); -- 输出 Friday March 2023
YEAR(date)
返回日期的年份。
SELECT YEAR('2023-03-31'); -- 输出 2023
MONTH(date)
返回日期的月份。
SELECT YEAR('2023-03-31'); -- 输出 2023
DAY(date)
返回日期的天数。
SELECT MONTH('2023-03-31'); -- 输出 3
HOUR(time)
返回时间的小时数。
SELECT HOUR('12:35:45'); -- 输出 12
MINUTE(time)
返回时间的分钟数。
SELECT MINUTE('12:35:45'); -- 输出 35
SECOND(time)
返回时间的秒数。
SELECT SECOND('12:35:45'); -- 输出 45
DATEDIFF(date1, date2)
返回两个日期之间的天数差。
SELECT DATEDIFF('2023-03-31', '2023-01-01'); -- 输出 89
四、字符串操作函数
CONCAT(str1, str2, …)
连接多个字符串。
SELECT CONCAT('Hello', ' ', 'world'); -- 输出 Hello world
LENGTH(str)
返回字符串的长度。
SELECT LENGTH('Hello world'); -- 输出 11
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
去除字符串的前后空格或指定字符。
SELECT TRIM(' Hello '); -- 输出 Hello
SELECT TRIM(BOTH 'a' FROM 'aaahelaaaaa'); -- 输出 hel
UPPER(str)
将全部字符串转换为大写。
SELECT UPPER('Hello world'); -- 输出 HELLO WORLD
LOWER(str)
将全部字符串转换为小写。
SELECT LOWER('Hello world'); -- 输出 hello world
SUBSTRING(str, pos, len) 或 SUBSTR(str, pos, len)
返回从字符串的 pos 位置开始的 len 个字符。
SELECT SUBSTRING('Hello world', 7, 5); -- 输出 world
SELECT SUBSTR('Hello world', 1, 3); -- 输出Hel
五、集合操作函数
COUNT(expr)
返回 expr 的行数。
SELECT COUNT(*) FROM employees; -- 输出 employees 表中的行数
MAX(expr)
返回 expr 的最大值。
SELECT MAX(salary) FROM employees; -- 输出 employees 表中的最高工资
MIN(expr)
返回 expr 的最小值。
SELECT MIN(salary) FROM employees; -- 输出 employees 表中的最低工资
SUM(expr)
返回 expr 的和。
SELECT SUM(salary) FROM employees; -- 输出 employees 表中的工资总和
AVG(expr)
返回 expr 的平均值。
SELECT AVG(salary) FROM employees; -- 输出 employees 表中的平均工资