这些函数涵盖了字符串处理、数值计算、日期和时间操作、流程控制、聚合计算、系统信息查询、加密解密等多个方面
熟练掌握这些函数的使用方法,可以显著提高数据库操作的效率和灵活性
本文将详细介绍MySQL中各类函数的使用方法,并通过实例加以说明
一、字符串函数 字符串函数用于处理和操作文本数据,是日常开发中最常用的函数类别
1.CONCAT(s1, s2, …, sn) CONCAT函数用于将多个字符串连接成一个字符串
例如: sql SELECT CONCAT(Hello, , World); -- 输出: Hello World 2.SUBSTRING(str, pos, len) SUBSTRING函数用于从字符串str的指定位置pos开始,提取长度为len的子字符串
如果len省略,则提取到字符串的末尾
例如: sql SELECT SUBSTRING(MySQL Functions,1,5); -- 输出: MySQL 3.- LENGTH(str) 和 CHAR_LENGTH(str) LENGTH函数返回字符串的字节长度,而CHAR_LENGTH函数返回字符串的字符长度
在多字节字符集(如UTF-8)中,这两个函数的返回值可能不同
例如: sql SELECT LENGTH(数据库); -- 返回字节数(UTF-8中可能是9) SELECT CHAR_LENGTH(数据库); -- 返回字符数:3 4.TRIM(str), LTRIM(str),RTRIM(str) TRIM函数用于去除字符串两端的空格;LTRIM函数用于去除字符串左侧的空格;RTRIM函数用于去除字符串右侧的空格
例如: sql SELECT TRIM( MySQL); -- 输出: MySQL SELECT LTRIM( MySQL); -- 仅去除左边空格 SELECT RTRIM(MySQL); -- 仅去除右边空格 5.- UPPER(str) 和 LOWER(str) UPPER函数将字符串转换为大写,LOWER函数将字符串转换为小写
例如: sql SELECT UPPER(mysql); -- 输出: MYSQL SELECT LOWER(MySQL); -- 输出: mysql 6.REPLACE(str, from_str, to_str) REPLACE函数用于将字符串str中所有出现的子字符串from_str替换为to_str
例如: sql SELECT REPLACE(MySQL is great, great, awesome); -- 输出: MySQL is awesome 二、数值函数 数值函数用于执行数学运算和数值处理
1.ABS(x) ABS函数返回数字x的绝对值
例如: sql SELECT ABS(-10); -- 输出:10 2.CEIL(x) 和 FLOOR(x) CEIL函数返回大于或等于x的最小整数,FLOOR函数返回小于或等于x的最大整数
例如: sql SELECT CEIL(3.14); -- 输出:4 SELECT FLOOR(3.99); -- 输出:3 3.ROUND(x, d) ROUND函数将数字x四舍五入到指定的小数位数d
如果d省略,则四舍五入到整数
例如: sql SELECT ROUND(3.14159,2); -- 输出:3.14 4.TRUNCATE(x, d) TRUNCATE函数将数字x截断为指定的小数位数d,不进行四舍五入
例如: sql SELECT TRUNCATE(3.14159,2); -- 输出:3.14 5.MOD(x, y) MOD函数返回x除以y的余数
例如: sql SELECT MOD(10,3); -- 输出:1 6.RAND() RAND函数返回一个0到1之间的随机浮点数
例如: sql SELECT RAND(); -- 返回0-1之间的随机浮点数 三、日期和时间函数 日期和时间函数用于处理日期和时间值,是业务系统中不可或缺的部分
1.NOW() NOW函数返回当前的日期和时间
例如: sql SELECT NOW(); -- 输出类似:2025-07-0214:30:45 2.- CURDATE() 和 CURTIME() CURDATE函数返回当前的日期(不包含时间),CURTIME函数返回当前的时间(不包含日期)
例如: sql SELECT CURDATE(); -- 输出类似:2025-07-02 SELECT CURTIME(); -- 输出类似:14:30:45 3.DATE_ADD(date, INTERVAL expr unit- ) 和 DATE_SUB(date, INTERVAL expr unit) DATE_ADD函数向日期date添加指定的时间间隔,DATE_SUB函数从日期date减去指定的时间间隔
INTERVAL是关键字,expr是表达式,unit是时间间隔单位(如DAY、MONTH、YEAR等)
例如: sql SELECT DATE_ADD(NOW(), INTERVAL1 DAY); -- 加1天 SELECT DATE_SUB(NOW(), INTERVAL1 MONTH); --减1个月 4.DATEDIFF(date1, date2) DATEDIFF函数返回两个日期之间的天数差
例如: sql SELECT DATEDIFF(2025-07-05, 2025-07-02); -- 输出:3 5.DATE_FORMAT(date, format) DATE_FORMAT函数根据指定的格式format格式化日期date
例如: sql SELECT DATE_FORMAT(NOW(), %Y年%m月%d日 %H:%i:%s); -- 输出类似:2025年07月02日14:30:45 四、流程控制函数 流程控制函数允许在SQL语句中实现条件逻辑
1.IF(condition, value_if_true, value_if_false) IF函数根据条件condition返回不同的值
如果condition为真,则返回value_if_true;否则返回value_if_false
例如: sql SELECT IF(1 >0, True, False); -- 输出: True 2.CASE WHEN … THEN … ELSE … END CASE语句用于实现多条件判断
例如: sql SELECT CASE WHEN score >=90 THEN A WHEN score >=80 THEN B ELSE C END AS grade FROM students; 3.- IFNULL(expr, alt_value) 和COALESCE(value1, value2, …) IFNULL函数用于处理NULL值,如果expr为NULL,则返回alt_value;否则返回expr本身
COALESCE函数返回其参数列表中的第一个非NULL值
例如: sql SELECT IFNULL(NULL, Default V