oracle中关于大小写问题

前言

有时候在操作Oracle数据库的时候,发现很多时候存在 带双引号,有时候就不带,有时候就是单引号。这个就有点儿疑惑。
单引号与双引号在oracle中的作用:
单引号代表的是字符串。而双引号之中的表示字段或者表名。
关于Oracle的大小写问题:首先关键字 如select from 还有一些存在的表名 dual等 这些是不区分大小写的。如select 与seLecT 这是一样的效果。但是对于字段里的值。假如 name这个属性,存放了’aaB’,那么查询的时候只能通过aaB才能查询到,查询aab AAb都不行。但是在mysql中,同样情况,通过aab aBa等都可以匹配到这个属性。

关于oracle的其他表名及字段大小写 及是否需要添加双引号问题下面进行说明探讨。

双引号在字段上增加

测试一:创建表的时候不增加双引号

创建表的时候不增加双引号,查看结果。
结论:创建表的时候不增加双引号,字段与表名是不区分大小写,系统会默认将小写都转换为大写,同时在查询的时候,不加双引号也不区分大小写,但是如果一旦加上双引号,必须要全部是大写,否则会报错。 字段值永远区分大小写。
如果不加增双引号,查询的时候字段或表名加双引号,那么必须全部大写。
在这里插入图片描述

测试二:建表时增加双引号,字段都不全是大写

见表时 增加双引号,且字段/表名中都不全是大写
结论:见表时候,如果增加了双引号,并且字段中不全是大写,那么在查询/操作 字段时,必须增加上双引号,并且大小写必须匹配好。
在这里插入图片描述

测试三:建表是增加双引号,字段/表名单项 全为大写

结论:只要字段中有一个全是大写,那么该字段就会被oracle自动识别,同时查询的时候可以不带双引号,不区分大小写,但是一旦加上双引号,必须匹配大小写。否则失败。
在这里插入图片描述

个人总结:

对于oracle中双引号的作用,个人觉得在建表时,如果没有特殊要求,就不要带双引号,这样查询操作都方便。一旦加上双引号,如果不全是大写,那么Oracle就不会进行处理(自动全部转为大写),此时可以理解为区分大小写,同时必须加上双引号才能被识别。
误区:有时候通过工具查看表,发现表名/字段名中有小写,此时应该注意查询格式,是否需要增加双引号才能查询到。
在字段内容中,如上面hh字段的表中值的时候,Oracle是区分大小写。

面试题:oracle是否区分大小写?

首先这个问题需要从多方面来回答:
1.在关键字中如selcet from 等这些是不区分大小写
2.在用户名/密码上,这个有设置,默认是区分大小写。可以通过设置将密码不区分带小写,但是用户名就不晓得,其实这个不需要可以去记,因为用户名密码本身就用的比较少,更改也比较少,记住就行了。多测试两下就行了
3,用在表中数据:查询表中数据时候是区分大小写的,如保存abc与 ABC是两个值。
4.用在字段和表上时,这个需要查看建表语句,建表语句中是否增加了双引号,如果不增加双引号,那么可以理解为不区分大小写,因为oracle或自动将不加双引号的转为大写。如果加双引号,需要看单个字段是否全为大写,如果该字段全为大写,那么该字段就不区分大小写。理解一下,如果不理解这里,可以查看上面测试123.

  • 11
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值