进阶四:字符函数
- 概念:类似于java的方法,将一组逻辑语句封装在方法中,对外暴露方法名
- 好处:1、隐藏了实现细节 2、提高代码的重用性
- 调用:selet 函数名(实参数表)【FROM表】;
特点:
- 1、叫什么(函数名)
- 2、干什么(函数功能)
分类:
- 1、单行函数 CONCAT LENGTH IFNULL等
- 2、分组函数 (做统计使用,又称为统计函数、聚合函数、组函数)
内容概览
- 1.length 获取字节数
- 2.concat 用于拼接字符串
- 3.upper lower 转换大小写
- 4.substr substring 按要求截取字符串
- 5.instr 查找字符串返回索引
- 6.trim 去除空格、去除指定字符
- 7.lpad 用指定字符左填充至指定长度
- 8.rpad 用指定字符右填充至指定长度
- 9.replace 替换字符串
内容详情
1. length获取参数值的字节数
SELECT LENGTH('john');
SELECT LENGTH('张三丰');
SHOW VARIABLES LIKE '%char%'#查询当前客户端使用的字符集
2. concat 用于拼接字符串
这两句需要分开运行,同时运行导致了错误
USE myemployees
SELECT CONCAT(last_name,'_',first_name) AS 姓名
FROM employees;
3. upper、lower
SELECT UPPER('john');#转换为大写
SELECT LOWER('joHn');#转换为小写
案例:将姓last_name大写,名字first_name小写,然后中间用 _ 拼接起来
SELECT CONCAT(UPPER(last_name),'_',LOWER(first_name)) AS 姓名
FROM employees;
4. substr、substring
提醒:这里索引从1开始
1.截取从指定字符开始及其后的所有字符,包含指定处的字符
SELECT SUBSTR('张三丰爱他媳妇!',6) out_put;
2.截取从指定索引处开始指定字符长度的字符
SELECT SUBSTRING('张三丰爱他媳妇!',1,3) out_put;
案例:姓中首字母大写,其他字符小写,然后用_拼接
SELECT CONCAT (UPPER(SUBSTRING(last_name,1,1)),
LOWER(SUBSTR(last_name,2)),'_',
LOWER(SUBSTR(first_name,1)) )
AS 姓名
FROM employees;
5. instr
返回字串在字符串中的首次出现的索引,如果找不到返回0
SELECT INSTR('张三丰爱上了柳六六','柳六六') AS out_put;
SELECT INSTR('张三丰爱上了柳六六','牛七七') AS out_put;
6. trim
去前后空格
SELECT TRIM(' 张 三丰') AS out_put;
去前后的 ‘a’,字符串中间的则不去
SELECT(TRIM('a' FROM 'aaaaaaaaaa张三aaaa丰aaaa')) AS out_put;
7. lpad 用指定的字符实现左填充指定长度
此处汉字所占长度视为1
SELECT LPAD('张三丰' ,6,'*') AS out_put;
从左处开始填充,使得总长度为6
8.rlpad 用指定的字符实现右填充指定长度
此处汉字所占长度视为1
SELECT RPAD('张三丰' ,5,'&') AS out_put;
从右处开始填充,使得总长度为5
9. replace 替换
SELECT REPLACE('张三丰爱上了李思思','李思思','马六六') AS out_put;
SELECT REPLACE('张三丰爱上了思思李思李思思李思思思','李思思','马六六');