1.length函数
作用:获取以字节为单位的字符串长度
举例:
SELECT LENGTH('name'),LENGTH('数据库');
运行结果:
#这里使用utf8编码的字符集。一个中文为三个字节,英文为一个
补充:
一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。
- ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
- UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
- Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
- 符号:英文标点为一个字节,中文标点为两个字节。例如:英文句号 . 占1个字节的大小,中文句号 。占2个字节的大小。
- UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)。
- UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。
2.concat函数
作用:合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个
举例:
SELECT CONCAT('MySQL','8.0'),CONCAT('MySQL',NULL);
运行结果:
补充:
- 若有任何一个参数为 NULL,则返回值为 NULL。
3.insert函数
作用:替换字符串函数
举例:
SELECT INSERT('pingpong',2,4,'Play') AS col1,
INSERT('pingpong',-1,4,'Play') AS col2,
INSERT('pingpong',3,20,'Play') AS col3;
运行结果:
补充:
- 替换字符串函数 INSERT(s1,x,len,s2) 返回字符串 s1,子字符串起始于 x 位置,并且用 len 个字符长的字符串代替 s2。
- 若 x 超过字符串长度,则返回值为原始字符串。
- 若 len 的长度大于其他字符串的长度,则从位置 x 开始替换。
4.lower函数
作用:将字符串中的字母转换为小写
举例:
SELECT LOWER('NIHAO'),LOWER('NiHao');
运行结果:
5.upper函数
作用:将字符串中的字母转换为大写
举例:
SELECT UPPER('nihao'),UPPER('NiHao');
运行结果:
6.left函数
作用:从字符串左侧截取,返回字符串左边的若干个字符
举例:
SELECT LEFT('nihao',2);
运行结果:
7.right函数
作用:从字符串右侧截取,返回字符串右边的若干个字符
举例:
SELECT RIGHT('nihao',2);
运行结果:
8.trim函数
作用:删除字符串左右两侧的空格
举例:
SELECT CONCAT('',' nihao ','');
运行结果:
SELECT CONCAT('',TRIM(' nihao '),'');
运行结果:
#第一个没有使用trim会有前后空格,第二个使用后去除了前后空格
9.replace函数
作用:字符串替换函数,返回替换后的新字符串
举例:
# REPLACE(s,s1,s2) 使用字符串 s2 替换字符串 s 中所有的字符串 s1。
SELECT REPLACE('nihao','ha','ss');
运行结果:
10.substring函数
作用:截取字符串,返回从指定位置开始的指定长度的字符串
举例:
# SUBSTRING(s,n,len)
SELECT SUBSTRING('hello',2) as a1,
SUBSTRING('hello',1,3) as a2,
SUBSTRING('hello',-2) as a3,
SUBSTRING('hello',-3,2) as a4;
运行结果:
补充:
- n为正数是按正序开始去找截取位置,n为负数时倒序找截取位置
11.reverse函数
作用:字符串反转,返回与原始字符串顺序相反的字符串
举例:
SELECT REVERSE('hello');
运行结果: