5.2 字符函数
concat 拼接、substring 截取、length 长度、upper/lower 大小写、trim 去空格。
本讲导览
核心内容
字符函数
1. ASCII(字符)
返回字符的ASCII码, select ASCII('A') 结果:65
2. Char(数值)
返回该数值对应的字符, select char(65) A
3. Space(n)
返回n个空格, Select space(10)
4. Length(字符串)
MYSQL中返回数据库字符集编码下字符串中的字节个数。
如:在字符集utf8mb4下,
(1)Select length(‘1234’); 返回4
因为在字符集utf8mb4中1个数字或英文字母只占1个字节。
(2)select length(‘青岛’); 返回6
因为在字符集utf8mb4中1个汉字占3个字节。
5、char_length(字符串)
返回字符串中的字符个数。不受数据库字符集的影响。
select char_length(‘青岛1a’); 返回4说明:此函数对字符串中的空格也计算。
注意:mysql中有几种获取字符串长度的函数,只有char_length()返回的是字符个数,而不是字节数。
其它几个函数都返回的是字节个数,而不是字符个数。
6. 返回字符串中的子串
(1)从左边取
Left(字符串, n)
Select left('青岛港湾职业技术学院',2)结果:青岛
显示姓‘王’的同学:
SELECT * FROM STUDENT where StuName like '王%'结果等价于:
SELECT * FROM STUDENT where left(StuName,1)='王'(2)从右边取
right(字符串, n)
Select right('青岛港湾职业技术学院',2)结果:学院
名字中最后一个字是‘丽’的同学,也可以写成:
SELECT * FROM STUDENT where right(StuName,1)='丽'(3)任意取
Substring(字符串,m,n) 或写成substr(字符串,m,n)返回字符串从m位置开始的n个字符。(不受字符集的影响)
Select substring('青岛港湾职业技术学院',3,2)结果:港湾
(1)请用substring()函数,显示姓‘王’的同学
SELECT * FROM STUDENT where substring(StuName,1,1)='王'(2)请用substring()函数,显示第2个字是‘丽’的同学
(3)请用substring()函数,显示第3个字是‘丽’的同学
7、 去掉前导空格
Ltrim( ), L是左侧的意思, left
update student set stuname=ltrim(stuname)8、 去掉后边空格
Rtrim(), R是右侧的意思, right
update student set stuname=rtrim(stuname)前后都去掉空格:rtrim(ltrim(stuname ))
select rtrim(ltrim(' 青岛港湾 '))或者用trim(),也是前后都去空格。
9、 替换函数
Replace(字符串1,字符串2,字符串3)用字符串3替换字符串1中的字符串2,返回一个新的字符串
如:select replace('青岛港学院' ,'港' ,'港湾') ‘青岛港湾学院’
把名字中的‘丽’都换成‘莉’
update student set stuname=replace(stuname,'丽','莉') where stuname like '%丽%'能不能再替换回来? 即将‘莉’再换成‘丽’,如何写语句?
update student set stuname=replace(stuname,'莉','丽') where stuname like '%莉%'请将密码中(pwd)的A都改为a, 语句怎么写?
把名字前加上‘中国’?
update student set stuname=concat('中国',rtrim(StuName));再把名字中的‘中国’去掉?
update student set stuname=replace(stuname,'中国','') where stuname like '%中国%‘思考:如何去掉字符串中间的空格?
10、字母大写转换成小写
Lower()
Select lower('ABCD') abcd11. 字母小写转换成大写
Upper()
select UPPER('abcd') ABCD
update Student set pwd=LOWER(pwd)12、类型转换函数
Cast(原数据 as 新类型)
CAST函数 是 SQL 中的一种类型转换函数,它用于将一个数据类型转换为另一个数据类型。
select concat(CAST(123 AS char),'456');结果:123456
13、字符串连接函数
Concat(‘字符串1’,’字符串2’)将‘字符串2’连接到‘字符串1’之后,生成新的字符串。
select concat('123','456');📄 展开课件原文(第 1–11 页,共 11 页)
课件里的提醒 课件原文中的“说明 / 注意 / 出错”
- 说明:此函数对字符串中的空格也计算。
- 注意:mysql中有几种获取字符串长度的函数,只有char_length()返回的是字符个数,而不是字节数。
本讲 SQL 速览 把课件里出现的语句集中起来,方便照着敲
select char_length(‘青岛1a’); 返回4Left(字符串, n)Select left('青岛港湾职业技术学院',2)SELECT * FROM STUDENT where StuName like '王%'SELECT * FROM STUDENT where left(StuName,1)='王'right(字符串, n)Select right('青岛港湾职业技术学院',2)SELECT * FROM STUDENT where right(StuName,1)='丽'Substring(字符串,m,n) 或写成substr(字符串,m,n)Select substring('青岛港湾职业技术学院',3,2)SELECT * FROM STUDENT where substring(StuName,1,1)='王'Ltrim( ), L是左侧的意思, left