一、字符函数
1、length
获取参数值的字节个数
select length('john')
输出结果为:4
select length('张三丰hahaha')
输出的结果为:15
解释:在编码格式为utf-8的条件下一个英文字母占一个字节,一个中文占3个字节
查看当前客户端使用的字符:
show variables like '%char%'
输出结果:
2、concat
拼接字符串
例:
select concat (last_name,'-',first_name) from employees;
输出结果:
3、upper、lower
字母大小写的转换
select upper('john')
select lower('JOHN')
4、substr(substring)
字符串的截取
注意:索引从1开始
例:
#截取从指定索引处后面所有字符
select substr('李莫愁爱上了陆展元',7) out_put
输出结果:陆展元
#截取从指定索引处指定字符长度的字符
select substr('李莫愁爱上了陆展元',1,3) out_put
输出结果:李莫愁
案例:
姓名中首字母大写,其他字符小写然后用_拼接,显示出来
select concat(upper(substr(last_name,1,1)),'_',lower(substr(last_name,2))) from employees;
5、instr
返回字符串第一次出现的索引,如果找不到返回0
select instr('杨不悔爱上了殷六侠','殷六侠') as out_put
from employees;
输出结果为:7
6、trim
去掉前后的空格
select length(trim(' 张翠山 ') as out_put;
输出结果:张翠山
select trim('a' from 'aaaaa张aaa翠山aaaaa')
as out_put;
输出结果:张aaa翠山
7、lpad
用指定的的字符实现左填充指定长度
select lpad('殷素素',10,'*') as out_put;
输出结果:
参数解释:要填充的字符,总的长度为10,填充形式为*
如果总长度超过指定的字符串则会被截断,如:
select lpad('殷素素',2,'*') as out_put;
输出结果:
补充:rpad是实现右填充
8、replace
select replace('张无忌爱上周芷若','周芷若','赵敏') as out_put;
输出结果:
二、数学函数
1、round
四舍五入
2、ceil
向上取整:返回>=该参数的最小整数
3、floor
向下取整:返回<=该参数的最大整数
4、truncate
截断函数,无论后面结果是什么都不要,
例:
select truncate(1.6999999,1);
输出结果:1.6
5、mod
取余函数,计算法则:
mod(a,b) : a-a/b*b
mod(-10,-3): -10-(-10)/(-3)*(-3)=-1