
CONCAT(str1, str2, ...):拼接字符串
SELECT CONCAT('Hello', ' ', 'World'); -- 结果:Hello World
LENGTH(str):返回字符串长度(字节数)
SELECT LENGTH('中国'); -- 结果:6(UTF-8 编码下一个汉字占 3 字节)
CHAR_LENGTH(str):返回字符串长度(字符数)
SELECT CHAR_LENGTH('中国'); -- 结果:2
UPPER(str) / LOWER(str):转换为大写 / 小写
SELECT UPPER('hello'); -- 结果:HELLO
SUBSTRING(str, pos, len):截取子串(pos 为起始位置,len 为长度)
SELECT SUBSTRING('abcdef', 2, 3); -- 结果:bcd
TRIM(str):去除首尾空格
SELECT TRIM(' test '); -- 结果:test
ABS(x):返回绝对值
SELECT ABS(-10); -- 结果:10
ROUND(x, d):四舍五入(d 为小数位数,默认 0)
SELECT ROUND(3.1415, 2); -- 结果:3.14
FLOOR(x) / CEIL(x):向下取整 / 向上取整
SELECT FLOOR(3.9); -- 结果:3
SELECT CEIL(3.1); -- 结果:4
SUM(col) / AVG(col):求和 / 求平均值(聚合函数)
SELECT SUM(score) FROM students; -- 总分数
SELECT AVG(score) FROM students; -- 平均分数
MOD(x, y):取余数(x 除以 y 的余数)
SELECT MOD(10, 3); -- 结果:1
NOW():返回当前日期和时间(YYYY-MM-DD HH:MM:SS)
SELECT NOW(); -- 结果:2023-10-01 15:30:45
CURDATE() / CURTIME():返回当前日期 / 时间
SELECT CURDATE(); -- 结果:2023-10-01
SELECT CURTIME(); -- 结果:15:30:45
DATE_FORMAT(date, format):格式化日期
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i:%s');
-- 结果:2023年10月01日 15:30:45
DATEDIFF(date1, date2):计算两个日期的差值(天数)
SELECT DATEDIFF('2023-10-05', '2023-10-01'); -- 结果:4
DATE_ADD(date, INTERVAL expr unit):日期加减
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); -- 加 1 天
SELECT DATE_ADD(NOW(), INTERVAL -1 HOUR); -- 减 1 小时
GROUP BY 一起使用):COUNT(col):统计非 NULL 值的数量
SELECT COUNT(*) FROM students; -- 总记录数
SELECT COUNT(score) FROM students; -- 非 NULL 分数的数量
MAX(col) / MIN(col):求最大值 / 最小值
SELECT MAX(score) FROM students; -- 最高分
SELECT MIN(score) FROM students; -- 最低分
GROUP_CONCAT(col):将分组后的字段值拼接为字符串
SELECT class, GROUP_CONCAT(name) FROM students GROUP BY class;
-- 结果:一班,张三,李四; 二班,王五,赵六
IF(expr, v1, v2):如果 expr 为真,返回 v1,否则返回 v2
SELECT IF(score >= 60, '及格', '不及格') FROM students;
CASE:多条件判断
SELECT
name,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS level
FROM students;
DISTINCT(col):去重
SELECT DISTINCT class FROM students; -- 所有不重复的班级
COALESCE(expr1, expr2, ...):返回第一个非 NULL 的值
SELECT COALESCE(null, '默认值'); -- 结果:默认值
MD5(str):计算字符串的 MD5 哈希值
SELECT MD5('123456'); -- 结果:e10adc3949ba59abbe56e057f20f883e
