外观
MySQL 中,你用过哪些函数
数值函数
ROUND()
:对数值进行四舍五入。
SELECT ROUND(3.14159, 2); -- 输出:3.14
ABS()
:返回数值的绝对值。
SELECT ABS(-10); -- 输出:10
GREATEST()
:返回一组值中的最大值。
SELECT GREATEST(10, 20, 30); -- 输出:30
LEAST()
:返回一组值中的最小值
SELECT LEAST(10, 20, 30); -- 输出:10
CEIL(x)
或 CEILING(x)
:返回大于或等于 x 的最小整数。
SELECT CEIL(4.2); -- 输出:5
FLOOR(x)
:返回小于或等于 x 的最大整数。
SELECT FLOOR(4.2); -- 输出:4
RAND()
:返回一个 [0, 1) 之间的随机数。
SELECT RAND(); -- 输出:[0, 1) 中的一个随机数
字符串函数
CONCAT()
:用于连接多个字符串。
SELECT CONCAT('Hello', ' ', 'World') AS result; -- 输出:Hello World
LENGTH()
:返回字符串的字节长度。
SELECT LENGTH('你好') -- 输出:6
CHAR_LENGTH()
:返回字符串的字符长度(支持多字节字符)。
SELECT CHAR_LENGTH('你好'); -- 输出:2
SUBSTRING()
:从字符串中截取指定部分。
SELECT SUBSTRING('HelloWorld', 1, 5); -- 输出:Hello
REPLACE()
:将字符串中的某些字符替换为其他字符。
SELECT REPLACE('HelloWorld', 'World', 'MySQL'); -- 输出:HelloMySQL
UPPER()
:将字符串转换为大写
SELECT UPPER('hello'); -- 输出:HELLO
LOWER()
:将字符串转换为小写。
SELECT LOWER('HELLO'); -- 输出:hello
日期和时间函数
NOW()
:返回当前日期和时间。
SELECT NOW(); -- 输出:2025-01-23 15:00:00
CURDATE()
:返回当前日期。
SELECT CURDATE(); -- 输出:2025-01-23
CURTIME()
:返回当前时间。
SELECT CURTIME(); -- 输出:15:00:00
DATE_FORMAT()
:将日期格式化为指定格式。
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 输出:2025-01-23 15:00:00
DATE_ADD()
:在日期上添加指定的时间间隔。
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR); -- 将当前日期加1年
DATE_SUB()
:从日期中减去指定的时间间隔。
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR); -- 将当前日期减1年
聚合函数
SUM()
:计算数值列的总和。
SELECT SUM(salary) FROM employees; -- 输出 员工工资总和
AVG()
:计算数值列的平均值。
SELECT AVG(salary) FROM employees; -- 输出 员工平均工资
MAX()
:返回列的最大值。
SELECT MAX(salary) FROM employees; -- 输出 最大工资
MIN()
:返回列的最小值。
SELECT MIN(salary) FROM employees; -- 输出 最小工资
COUNT()
:统计行数或非空值的数量。
SELECT COUNT(*) FROM employees; -- 输出 员工总数
条件函数
IF()
:用于简单的条件判断。
SELECT IF(1 > 0, 'Yes', 'No'); -- 输出 'Yes'。
CASE()
:用于复杂的条件判断。
SELECT name
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
ELSE '其他'
END score_level
FROM students;
-- 输出 学生成绩对应的评级