第六章 Oracle 中的字符型简介及相关函数(有translate()最简单的介绍)

第六章 Oracle 中的字符型及处理方法

字符型简介

  • char(n)

    • char(n)指定变量或列的数据类型为固定长度为n的字符串。
    • 当实际字符串的长度不足n时,Oracle 利用空格将右端补齐。当然,实际字符串的长度也不能大于n
    • 数据库中,当列指定为char(n)类型时,n的最大值不能大于2000,否则,Oracle将抛出错误。
  • varchar(n)

    • varchar(n)指定的数据类型是一个长度为n的可变字符串类型。
    • 当实际字符串的长度不足n时,不会使用空格进行填充。同样,实际字符串的长度也不能超出n。
    • varchar(n)当作为列的数据类型时,varchar的最大长度不能大于4000
  • varchar2(n)

    • varchar2(n)与varchar(n)同样是可变长度的字符串类型

    • varchar2(n)与varchar(n)的区别:

      • 对于它俩的区别,没有必要深究,总之varchar2(n)是Oracle数据库独有的数据类型,如果数据仅使用oracle存储,建议使用varchar2(n),但数据可能会转移到其他数据库(如mysql)时,建议使用varchar(n)数据类型
    • 当作为列的数据类型出现时,varchar2的长度同样不能大于4000

  • 以上三种字符串类型,都可用于声明变量,但是利用三者声明时,最大长度均为32767

    • 其中,char(n)并不适用于声明变量,因为无论变量值为多少,其长度不变,仍然为32767,造成内存空间的浪费。

字符串函数

  • lpad():向左补全字符串

    • 该函数主要用于字符串的格式化。格式化的方式为,将字符串格式化为指定长度,如有不足的部分,则在字符串的左端填充特定字符。

    • lpad(string,padded_length,[pad_string])

      • string:表示原始字符串
      • padded_length:表示指定格式化之后字符串长度
      • pad_string:指定填充字符
      • 如果原字符串的长度大于指定格式化之后字符串的长度,将从字符串左端开始截取。
    • 例:

      • 在这里插入图片描述

      • 在这里插入图片描述

  • rpad():向右补全字符串

    • rpad(string,padded_length,[pad_string])

      • 与lpad()函数相似,rpad()函数返回字符串格式化为特定位数的操作。只是该函数是从右端补齐位数。
      • 如果原始字符串的长度大于预期长度时,rlpad()函数同样是自左端截取字符串。
  • lower():返回字符串的小写形式

    • lower(string)举例:

      • 在这里插入图片描述
  • upper():返回字符串的大写形式

    • upper(string)举例:

      • 在这里插入图片描述
  • initcap():单词首字符大写

    • initcap(string)举例:

      • 注意:

        • 如果有多个单词组成,只要非单词字符都将作为单词的分隔符
      • 在这里插入图片描述

  • length():返回字符串的长度

    • length(string)举例

      • 在这里插入图片描述
  • substr():截取字符串

    • substr(string,start_index,length)

      • string:原始字符串
      • start_index:开始截取的位置
      • length:指定截取的长度
      • 注意:Oracle中字符串中第一个字符的位置为1,与编程语言Java自0开始的习惯不同
  • instr():返回子字符串在父字符串中出现的位置

    • instr(string,sub_string[,start_index][,times])

      • string:为父字符串;
      • sub_string:为子字符串;
      • start_index:可选参数,指定搜寻的起始位置
      • times:可选参数,表示第几次获得子字符串
      • 注意:如果子字符串未出现在父字符串中,该函数将返回0
    • 举例:

      • 在这里插入图片描述
  • ltrim():删除字符串左侧的空格

    • ltrim(string)

      • 在这里插入图片描述
  • rtrim():删除字符串右侧的空格

    • rtrim(string)

      • 在这里插入图片描述
  • trim():删除字符串两侧空格

    • trim(string)

      • 在这里插入图片描述
  • concat():将两个字符串进行连接

    • concat(string1,string2)

      • 在这里插入图片描述
    • 多个字符串进行连接时,使用多个concat()函数嵌套

      • 在这里插入图片描述
  • translate():翻译字符串

    • translate(string1,string2,string3)

      • string1:原始字符串

      • string2:通过此字符串,获取位置

      • string3:通过获取到的位置,找到位置对应的字符

      • 如果string3的长度小于string2中获取到的位置参数,则作为空字符串‘’处理

        • 在这里插入图片描述
    • 举例:

      • 在这里插入图片描述

      • ±:在 1+2- 中对应的位置为2 4 5;在abcugfk中找到位置为2 4 5的字符,得到结果字符:bug

  • reverse():反转字符串

    • reverse(string)
      • 反转单字节字符串:

        • 在这里插入图片描述

        • reverse(string),在对单字节字符进行转换时,可将字符串的顺序颠倒;

      • 反转双字节字符串:

        • 在这里插入图片描述

        • 当转换像汉字这种双字节字符时,返回乱码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大脑经常闹风暴@小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值