数据库-Oracle学习笔记(4)

≯℡__Kan透↙ 提交于 2020-03-02 15:07:58

Oracle字符串操作

字符串类型:char类型和varchar2类型

char类型

  • char类型存放的是定长字符,存不满补空格;
  • char最大取值是2000字节,也就是最多保存2000个英文字符,1000个汉字;
  • char可以不指定长度,默认为1,例如loc char等价于loc char(1)。

varchar2类型

  • varchar2类型存放的是变长字符,存多少占用多少;
  • varchar2最大取值是4000字节,也就是最多保存4000个英文字符,2000个汉字;
  • varchar2必须指定长度,如果loc varchar2这样写是错误的。

字符串函数

concat和 || 函数

  • 语法1:concat(str1,str2),将两个字符串进行连接
    concat(‘a’,’b’) -->’ab’
select * from emp;      查询表中所有列
select ename, sal from emp;  查询表中ename列,和sal列
select concat(ename, '的工资是:')  from emp;   -->SMITH的工资是:
SMITH的工资是:    sal    ---> SMITH的工资是800
select concat(concat(ename,'的工资是:'), sal) from emp;
  • 语法2: || 等价于concat函数,str1 || str2,将str1和str2连在一起
select  ename || '的工资是:' || sal   from emp;
select ename || '的提成是:' || comm from emp;
强调:使用||或者concat将str1和str2进行连接,如果str1或者str2任何一个是null,相当于连接了一个空格

length函数:求字符串的长度

  • 语法:length(str) -->求str的长度
  • 说明:str的类型如果是varchar2类型,求出的长度是字符串的实际长度;如果str的类型是char类型,
    求出的长度还要包括后补的空格。
name char(10)     ‘abc       ’  length(name)->10
name varchar2(10)  ‘abc’         length(name)->3
select ename, length(ename) from emp;
create table u1(
    name char(10),
    pwd  varchar2(10)
);
insert into u1 values('abc','abc');
select length(name), length(pwd) from u1;    10  3

upper、lower、initcap函数

  • 功能:大小写转换函数,用于转换字符的大小写
  • 语法:upper(str)用于将字符转换为大写形式
    lower(str)用于将字符转换为小写形式
    initcap(str)用于将字符串中每个单词的首字母大写
select ename, upper(ename), lower(ename), initcap(ename) from emp;

trim、ltrim、rtrim函数

  • 功能:去掉空格
  • 语法:trim(str)用于去掉str两边空格
    ltrim(str)用于去掉str左边空格
    rtrim(str)用于去掉str右边空格
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!