一、字符函数
1.length 获取参数值的字节个数(UTF8中文3个字节)
SELECT LENGTH(‘join’); -- 4
SELECT LENGTH('张三丰hahaha'); -- 15
2.concat 拼接字符串
SELECT CONCAT('a','-','b'); -- a-b
3.upper、lower 大小写转换
SELECT UPPER(‘john’); -- JOHN
SELECT LOWER(‘joHn’); -- john
4.substr、substring(两个一样) 注意:索引从1开始
#截取从指定索引处后面的所有字符
SELECT SUBSTR('李莫愁爱上了陆展元', 7);
#截取从指定索引处指定长度的字符
SELECT SUBSTR('李莫愁爱上了陆展元', 1, 3); --
5.instr 返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR('杨不悔爱上了殷六侠', '殷六侠'); -- 7
6.trim 去除字符串首尾的指定字符串,默认为去除空格
SELECT TRIM(' a a a ') -- a a a
SELECT TRIM('bb'FROM 'bbbbb a a a bbbbb' -- bbbbb a a a b
7.lpad 用指定的字符实现左填充指定长度,如果字段本身长度大于指定长度,则截取
SELECT LPAD('殷素素', 10, '*'); -- *******殷素素
SELECT LPAD('殷素素', 2, '*'); -- 殷素
8.rpad 用指定的字符实现右填充指定长度,如果字段本身长度大于指定长度,则截取
SELECT LPAD('殷素素', 10, '*'); -- 殷素素*******
9.replace 替换(全部替换)
SELECT REPLACE('杨不悔爱上了殷六侠', '殷六侠','张三'); -- 杨不悔爱上了张三
二、数学函数
1.round 四舍五入
SELECT ROUND(1.567); -- 2
SELECT ROUND(1.567, 2); -- 1.57
2.ceil 向上取整,返回>=该参数的最小整数
SELECT CEIL(1.00); -- 1
SELECT CEIL(2.10); -- 3
3.floor 向下取整,返回<=该参数的最大整数
SELECT FLOOR(1.00); -- 1
SELECT FLOOR(2.10); -- 2
SELECT FLOOR(-2.10); -- -3
4.truncate 截断
SELECT TRUNCATE(1.6999,1); -- 1.6
5.mod 取模、取余 a-a/b*b
SELECT MOD(10,3); -- 1
SELECT 10%3; -- 1
三、日期函数
1.now 返回当前系统日期+时间
SELECT NOW(); -- 2019-05-05 21:12:06
2.curdate 返回当前系统日期,不包含时间
SELECT CURDATE(); -- 2019-05-05
3.curtime 返回当前时间,不包含日期
SELECT CURTIME(); -- 21:14:30
4.获取制定的部分,年、月、日、小时、分钟、秒
SELECT YEAR(NOW()); -- 2019
SELECT YEAR('1998-1-1'); -- 1998
SELECT MONTH(NOW()); -- 5
SELECT MONTHNAME(NOW()); -- May
5.str_to_date 将字符串通过指定格式转换成日期
SELECT STR_TO_DATE('5-6/2019','%m-%d/%Y'); -- 2019-05-06
6.data_format 将日期转换成字符
SELECT DATE_FORMAT(NOW(), '%m-%d/%Y'); -- 05-05/2019
SELECT DATE_FORMAT('2019-05-06', '%m-%d/%Y'); -- 05-05/2019
四、其他函数
SELECT VERSION(); -- 版本号
SELECT DATABASE(); -- 当前数据库
SELECT USER(); -- 当前用户
五、流程控制函数
1.if 函数
SELECT IF(10>5,'大', 1); -- 大
2.case 函数的使用一: switch case的效果
SELECT CASE 20
WHEN 10 THEN 1
WHEN 20 THEN 2
WHEN 30 THEN 3
ELSE 4
END AS id1 -- 2
3.case 函数的使用二: 类似于多重if
SELECT CASE
WHEN 10 > 11 THEN 1
WHEN 20 > 10 THEN 2
WHEN 30 > 10 THEN 3
ELSE 4
END AS id1 -- 2