目录
1. 转大小写
2. 截取字符串 sunstr
3. 获取字符长度
4. 字符串拼接 concat
5. 去掉空白 trim
1. 转大小写
转大写:upper()
转小写:lower()
虽然MySQL不严格区分大小写,但是我们还是需要掌握这种大小写的操作以方便学习其他数据库;
比如查询员工的姓名,但不清楚姓名是大写/小写/大小写混合,我们直接将其转为大/小写进行比对即可;
select * from upper (name) = ' ABC ' ;
第一步:执行 from ;
第二步:表中所有名字转换为大写,再比较;
第三步:select ;
注意:虽然转大写小写了,但没有改变原始数据的大小写;
(由于SSMS导入了scott库,所以这里使用sqlserver的图形化界面工具演示)
2. 截取字符串 sunstr
2.1 SQL语句:substr ( 待截字符串,截取位置,截取长度 ) ;
比如 sunstr ( ' bacde ' , 2 , 1) = a ,从第二个字符开始,截取一个字符长度,而字符从1开始计数的,所以第二个是 a ;
比如查询姓名第二个是 A 的员工姓名;
select ename from dbo.emp where ename like '_A%'; 相当于
select ename from dbo.emp where substr (ename,2,1)='A';
注意:
比如 select sunstr ( ' abcde ' ,-1 ,2 ) = ' e ' ;负数从字符串右边开始计数,截取长度都是往右取;
这种写法可读性较差,不常用,了解即可;
2.2 SQL语句:substr ( 待截字符串,截取位置 ) ;
比如 select substr ( ' abcde ' , 2 ) = ' bcde ' ;
3. 获取字符长度
获取字符长度:length ( ) / char_length ( ) ;
比如:select ename , length ( ename ) from emp ;
区别: length()统计的是字节长度;char_length ( ) 统计的是字符长度;
比如 select length ( ' 你好Java ' ) ;输出为 8(一个汉字两个字节,所以有8个字节);
select char_length ( ' 你好Java ' ) ;输出为 6 (即六个字符);
4. 字符串拼接 concat
SQL语句:concat ( ) ;
比如:select concat ( ' ac ' ,' bd ' , ' ef ' ) ;输出为 :acbdef ;
5. 去掉空白 trim
去掉字符串前后空白:trim ( ' ' ) ;
比如:select trim ( ' a b c ' ) ; 结果为 'a b c ',字符串前后空格被去掉;