MySQL 常用内置函数

1. 字符串函数(String Functions)

这类函数专门处理文本数据,在数据清洗和格式化输出时非常有用。

函数语法说明示例
CONCATCONCAT(str1, str2, ...)连接多个字符串CONCAT('Hello', ' ', 'World') → 'Hello World'
CONCAT_WSCONCAT_WS(sep, str1, ...)用指定的分隔符连接字符串,会跳过NULLCONCAT_WS('-', '2024', NULL, '15') → '2024-15'
SUBSTRINGSUBSTRING(str, pos, len)从指定位置pos开始,截取len个字符SUBSTRING('Hello World', 1, 5) → 'Hello'
LEFT / RIGHTLEFT(str, len) / RIGHT(str, len)左侧右侧截取指定长度的字符LEFT('Hello World', 5) → 'Hello'
LENGTHLENGTH(str)返回字符串的字节长度(UTF-8中一个汉字占3字节)LENGTH('你好') → 6
CHAR_LENGTHCHAR_LENGTH(str)返回字符串的字符数量(一个汉字算1个字符)CHAR_LENGTH('你好') → 2
UPPER / LOWERUPPER(str) / LOWER(str)将字符串转换为大写小写UPPER('Hello') → 'HELLO'
TRIMTRIM(str)去除字符串两端的空格TRIM(' Hello ') → 'Hello'
REPLACEREPLACE(str, old, new)将字符串中的指定子串替换为另一个子串REPLACE('Hello World', 'World', 'MySQL') → 'Hello MySQL'
INSTRINSTR(str, substr)返回子串substr在字符串str首次出现的位置INSTR('Hello World', 'World') → 7
REVERSEREVERSE(str)反转字符串中的字符顺序REVERSE('Hello') → 'olleH'
INSERTINSERT(str, pos, len, newstr)在指定位置pos开始,替换len个字符为newstrINSERT('Hello', 1, 2, 'AA') → 'AAllo'
2. 日期和时间函数(Date and Time Functions)

这类函数用于处理日期、时间数据,是生成报表和进行时间序列分析的。

函数语法说明示例
NOW / CURDATE / CURTIMENOW() / CURDATE() / CURTIME()返回当前日期时间当前日期当前时间NOW() → '2024-01-15 14:30:00'
YEAR / MONTH / DAYYEAR(date) / MONTH(date) / DAY(date)从日期中提取YEAR('2024-01-15') → 2024
HOUR / MINUTE / SECONDHOUR(time) / MINUTE(time) / SECOND(time)从时间中提取小时分钟HOUR('14:30:00') → 14
DATE_FORMATDATE_FORMAT(date, format)按照指定格式格式化日期DATE_FORMAT(NOW(), '%Y年%m月%d日') → '2024年01月15日'
STR_TO_DATESTR_TO_DATE(str, format)将字符串按照指定格式转换为日期类型STR_TO_DATE('15-01-2024', '%d-%m-%Y') → '2024-01-15'
DATEDIFFDATEDIFF(date1, date2)计算两个日期之间的天数差DATEDIFF('2024-01-15', '2024-01-01') → 14
DATE_ADD / DATE_SUBDATE_ADD(date, INTERVAL expr unit)对日期进行加/减运算DATE_ADD('2024-01-01', INTERVAL 30 DAY) → '2024-01-31'
TIMESTAMPDIFFTIMESTAMPDIFF(unit, date1, date2)计算两个日期时间的差值,单位可指定TIMESTAMPDIFF(DAY, '2024-01-01', '2024-01-15') → 14
3. 数值函数(Numeric Functions)

用于执行数学计算和数值处理。

函数语法说明示例
ROUNDROUND(num, dec)对数字进行四舍五入,保留指定小数位ROUND(3.14159, 2) → 3.14
TRUNCATETRUNCATE(num, dec)截断数字到指定小数位(不四舍五入)TRUNCATE(3.14159, 2) → 3.14
ABSABS(num)返回数字的绝对值ABS(-5) → 5
CEILING / FLOORCEILING(num) / FLOOR(num)返回大于等于或小于等于该数字的最小/最大整数CEILING(3.14) → 4FLOOR(3.14) → 3
4. 聚合函数(Aggregate Functions)

这类函数对一组值进行统计计算,常与 GROUP BY 配合使用。

函数语法说明示例
COUNTCOUNT(*) / COUNT(column)计算表中的行数或某列非空值的个数COUNT(*) → 100
SUMSUM(column)计算某列的总和SUM(amount) → 5000
AVGAVG(column)计算某列的平均值AVG(age) → 25.5
MAX / MINMAX(column) / MIN(column)返回某列的最大值最小值MAX(price) → 99.99
5. 条件与逻辑函数(Conditional Functions)

用于在SQL中实现if-else逻辑,进行数据转换。

函数语法说明示例
IFIF(condition, true_val, false_val)简单if-else判断,满足条件返回一个值,否则返回另一个IF(age>=18, '成年', '未成年')
CASECASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE default END多重条件判断(类似switch),用于复杂逻辑CASE WHEN age<18 THEN '少年' WHEN age<30 THEN '青年' ELSE '中年' END
IFNULL / COALESCEIFNULL(expr1, expr2) / COALESCE(expr1, expr2, ...)处理NULL值,返回第一个非NULL的值IFNULL(phone, '无电话')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值