##字符函数、数学函数、日期函数、其它函数【补充】、流程控制函数【补充】(可以实现一些分支函数)

##一、字符函数
select length('john');select length('张三丰hahaha');(15,汉字三个字节,字母一个字节show variables like '%char%'

##二、concat 拼接字符串
select concat(last_name,'_',first_name) 姓名 from employees;

##三、upper、lower(变大小写)
select upper('john');(变大写)
select lower('joHn');(变小写)

###示例:将姓变大写,名变小写,然后拼接
selcet concat(upper(last_name)),lower(first_name)) 姓名 from employees;

##四、substr、substring(这两意思一样)(返回字符串的子字符串)
注意:索引从1开始

###截取从指定索引处后面所有字符
select substr('李莫愁爱上了陆展元',7) out_put;(结果:陆展元)(截取从7开始后面所有字符)

###截取从指定索引处指定字符长度的字符
想截取李莫愁,那么
select substr('李莫愁爱上了陆展元',1,3(表示截取三个)) out_put;

##案例:姓名中首字符大写,其他字符小写,然后用_拼接,显示出来
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) FROM employees;

##五、instr(用于返回子串在大的串里面的起始索引)
select instr('杨不悔爱上了殷六侠','殷六侠') as out_put;(输出:7)
###假如说殷六侠出现了好多遍,那么返回值按第一次出现来算
select instr('杨不悔殷六侠爱上了殷六侠','殷六侠') as out_put;(输出:4)
###假如说找不到,那么返回的就是0

##六、trim(去掉前后的东西,不去中间的)
select length(trim(' 张翠山 ')) as out_put(此处加length是为了更好说明他去掉了空格)
select trim('a' from 'aaaaa张aaa翠山aaaaaaaaaaa') as out_put;(输出:张aaa翠山)
###如果你用这样的输入(aa)
select trim('aa' from 'aaaaa张aaa翠山aaaaaaaaaaa') as out_put;(输出:a张aaa翠山)(aa当作一个单位了)

##七、lpad(用指定的字符实现左填充指定长度)
select Lpad('殷素素',10,'*') as out_put; (输出:*******殷素素)(最后总的字符数是10个)
###特别地,如果你的代码是这样(2)
select Lpad('殷素素',2,'*') as out_put; (输出:殷素)(超过了截断,从右边截断)

##八、rpad (用指定的字符实现右填充指定长度)
select rpa('殷素素',12,'ab') as out_put; (输出:殷素素abababa)

##九、replace 替换
select replace('张无忌爱上了周芷若','周芷若','赵敏') as out_put; (输出:张无忌爱上了赵敏)
###特别地,这里面有多个周芷若
select replace('周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') as out_put; (输出:赵敏赵敏张无忌爱上了赵敏)(都改了)