https://mp.weixin.qq.com/s/LXKChFJ4JLSqgPIt0pL7mg
字符函数: --length:获取字节个数(utf-8 一个汉字为3个字节,gbk为2个字节) SELECT LENGTH('cbuc') # 输出 4 SELECT LENGTH('蔡不菜cbuc') # 输出13
--concat:拼接字符串 SELECT CONCAT('C','_','BUC') # 输出 C_BUC
--upper:将字母变成大写 SELECT UPPER('cbuc') # 输出 CBUC
--lower:将字母变成小写 SELECT LOWER('CBUC') # 输出 cbuc
--substr / substring:裁剪字符串 该方法进行了重构, 在这里插入图片描述 substr(str,pos) # str:要裁剪的字符串 , pos:要裁剪的长度 substr(str,pos,len) # str:要裁剪的字符串 , pos/len:从哪个位置开始裁剪几位 # substring同理
--instr:返回子串第一次出现的索引,如果没有则返回0 SELECT INSTR('蔡不菜','蔡') # 输出 1 (mysql是从1开始算位数)
--trim:字符串去【字符】 SELECT TRIM(' cbuc ') # 输出 cbuc SELECT TRIM('a' from 'aaaacbucaaaa') #输出 cbuc lpad:用指定字符实现左填充指定长度 SELECT LPAD('cbuc',6,'*') # 输出 **cbuc rpad:用指定字符实现右填充指定长度 SELECT RPAD('cbuc',6,'*') # 输出 cbuc** replace 替换 SELECT REPLACE('小菜爱睡觉','睡觉','吃饭') # 输出 小菜爱吃饭
数学函数 round:四舍五入 SELECT round(1.5) # 输出 2 SELECT round(-1.5) # 输出 -2 该四舍五入计算方式为:绝对值四舍五入加负号 ceil:向上取整,返回>=该参数的最小整数 SELECT CEIL(1.5); # 输出 2 SELECT CEIL(-1.5); # 输出 -1 floor:向下取整,返回<=该参数的最大整数 SELECT FLOOR(1.5); # 输出 1 SELECT FLOOR(-1.5); # 输出 -2 truncate:截断 SELECT TRUNCATE(3.1415926,2); # 输出 3.14 mod:取余 SELECT MOD(10,3); # 输出 1 SELECT MOD(10,-3); # 输出 1 日期函数 now:返回当前系统日期+时间 SELECT NOW() # 输出 2020-02-16 11:43:21 curdate:返回当前系统日期,不包含时间 SELECT CURDATE() # 输出 2020-02-16 curtime:返回当前时间,不包含日期 SELECT CURTIME() # 输出 11:45:35 year/month/day 可以获取指定的部分,年、月、日、小时、分钟、秒 SELECT YEAR(NOW()) # 输出 2020 其他用法一致 str_to_date:将字符通过指定的格式转换成日期 SELECT STR_TO_DATE('02-17 2020','%c-%d %Y') # 输出 2020-02-17 date_format:将日期转换成字符 SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') # 输出 2020年02月17日 datediff:两个日期天数之差 SELECT DATEDIFF(NOW(),'2020-02-12') # 输出 5
其他函数 VERSION:查看mysql 版本 SELECT VERSION(); # 输出 5.7.17 DATABASE:查看当前数据库 SELECT DATABASE() # 输出 cbuc_datebase USER:查看当前用户 SELECT USER() # 输出 root@localhost 流程控制函数 if 函数:类似三目运算 SELECT IF(10<5,'大','小') # 输出 小 switch case 的效果 case 要判断的字段或表达式 when 常量1 then 要显示的值1或语句1; when 常量2 then 要显示的值2或语句2; ... else 要显示的值n或语句n; end 类似于多重if case when 条件1 then 要显示的值1或语句1 when 条件2 then 要显示的值2或语句2 ... else 要显示的值n或语句n end
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
CASE SCORE
WHEN 'A' THEN '优' ELSE '不及格' END
CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' END
CASE SCORE WHEN 'C' THEN '中' ELSE '不及格' END
CASE
WHEN SCORE = 'A' THEN '优'
WHEN SCORE = 'B' THEN '良'
WHEN SCORE = 'C' THEN '中'
ELSE '不及格' END