===== 第 1 页 ===== 第2节、字符函数 1. ASCII(字符) 返回字符的ASCII码, select ASCII('A') 结果:65 2. Char(数值) 返回该数值对应的字符, select char(65) A 3. Space(n) 返回n个空格, Select space(10) ===== 第 2 页 ===== 4. Length(字符串) MYSQL中返回数据库字符集编码下字符串中的字节个数。 如:在字符集utf8mb4下, (1)Select length(‘1234’); 返回4 因为在字符集utf8mb4中1个数字或英文字母只占1个字节。 (2)select length(‘青岛’); 返回6 因为在字符集utf8mb4中1个汉字占3个字节。 ===== 第 3 页 ===== 5、char_length(字符串) 返回字符串中的字符个数。不受数据库字符集的影响。 select char_length(‘青岛1a’); 返回4 说明:此函数对字符串中的空格也计算。 注意:mysql中有几种获取字符串长度的函数,只有char_length()返回的是字符个数,而不是字节数。 其它几个函数都返回的是字节个数,而不是字符个数。 ===== 第 4 页 ===== 6. 返回字符串中的子串 (1)从左边取 Left(字符串, n) Select left('青岛港湾职业技术学院',2) 结果:青岛 显示姓‘王’的同学: SELECT * FROM STUDENT where StuName like '王%' 结果等价于: SELECT * FROM STUDENT where left(StuName,1)='王' ===== 第 5 页 ===== (2)从右边取 right(字符串, n) Select right('青岛港湾职业技术学院',2) 结果:学院 名字中最后一个字是‘丽’的同学,也可以写成: SELECT * FROM STUDENT where right(StuName,1)='丽' ===== 第 6 页 ===== (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 页 ===== 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(),也是前后都去空格。 ===== 第 8 页 ===== 9、 替换函数 Replace(字符串1,字符串2,字符串3) 用字符串3替换字符串1中的字符串2,返回一个新的字符串 如:select replace('青岛港学院' ,'港' ,'港湾') ‘青岛港湾学院’ 把名字中的‘丽’都换成‘莉’ update student set stuname=replace(stuname,'丽','莉') where stuname like '%丽%' 能不能再替换回来? 即将‘莉’再换成‘丽’,如何写语句? ===== 第 9 页 ===== 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 页 ===== 10、字母大写转换成小写 Lower() Select lower('ABCD') abcd 11. 字母小写转换成大写 Upper() select UPPER('abcd') ABCD update Student set pwd=LOWER(pwd) ===== 第 11 页 ===== 12、类型转换函数 Cast(原数据 as 新类型) CAST函数 是 SQL 中的一种类型转换函数,它用于将一个数据类型转换为另一个数据类型。 select concat(CAST(123 AS char),'456'); 结果:123456 13、字符串连接函数 Concat(‘字符串1’,’字符串2’) 将‘字符串2’连接到‘字符串1’之后,生成新的字符串。 select concat('123','456');