oracle中关于大小写问题
本文链接:https://blog.csdn.net/qq_32281025/article/details/93189478
oracle中关于大小写问题
前言
双引号在字段上增加
测试一:创建表的时候不增加双引号
测试二:建表时增加双引号,字段都不全是大写
测试三:建表是增加双引号,字段/表名单项 全为大写
个人总结:
面试题:oracle是否区分大小写?
前言
有时候在操作Oracle数据库的时候,发现很多时候存在 带双引号,有时候就不带,有时候就是单引号。这个就有点儿疑惑。
单引号与双引号在oracle中的作用:
单引号代表的是字符串。而双引号之中的表示字段或者表名。
关于Oracle的大小写问题:首先关键字 如select from 还有一些存在的表名 dual等 这些是不区分大小写的。如select 与seLecT 这是一样的效果。但是对于字段里的值。假如 name这个属性,存放了’aaB’,那么查询的时候只能通过aaB才能查询到,查询aab AAb都不行。但是在mysql中,同样情况,通过aab aBa等都可以匹配到这个属性。
关于oracle的其他表名及字段大小写 及是否需要添加双引号问题下面进行说明探讨。
双引号在字段上增加
测试一:创建表的时候不增加双引号
创建表的时候不增加双引号,查看结果。
结论:创建表的时候不增加双引号,字段与表名是不区分大小写,系统会默认将小写都转换为大写,同时在查询的时候,不加双引号也不区分大小写,但是如果一旦加上双引号,必须要全部是大写,否则会报错。 字段值永远区分大小写。
如果不加增双引号,查询的时候字段或表名加双引号,那么必须全部大写。
在这里插入图片描述
图片.png
测试二:建表时增加双引号,字段都不全是大写
见表时 增加双引号,且字段/表名中都不全是大写
结论:见表时候,如果增加了双引号,并且字段中不全是大写,那么在查询/操作 字段时,必须增加上双引号,并且大小写必须匹配好。
在这里插入图片描述
图片.png
测试三:建表是增加双引号,字段/表名单项 全为大写
结论:只要字段中有一个全是大写,那么该字段就会被oracle自动识别,同时查询的时候可以不带双引号,不区分大小写,但是一旦加上双引号,必须匹配大小写。否则失败。
在这里插入图片描述
图片.png
个人总结:
对于oracle中双引号的作用,个人觉得在建表时,如果没有特殊要求,就不要带双引号,这样查询操作都方便。一旦加上双引号,如果不全是大写,那么Oracle就不会进行处理(自动全部转为大写),此时可以理解为区分大小写,同时必须加上双引号才能被识别。
误区:有时候通过工具查看表,发现表名/字段名中有小写,此时应该注意查询格式,是否需要增加双引号才能查询到。
在字段内容中,如上面hh字段的表中值的时候,Oracle是区分大小写。
面试题:oracle是否区分大小写?
首先这个问题需要从多方面来回答:
1.在关键字中如selcet from 等这些是不区分大小写
2.在用户名/密码上,这个有设置,默认是区分大小写。可以通过设置将密码不区分带小写,但是用户名就不晓得,其实这个不需要可以去记,因为用户名密码本身就用的比较少,更改也比较少,记住就行了。多测试两下就行了
3,用在表中数据:查询表中数据时候是区分大小写的,如保存abc与 ABC是两个值。
4.用在字段和表上时,这个需要查看建表语句,建表语句中是否增加了双引号,如果不增加双引号,那么可以理解为不区分大小写,因为oracle或自动将不加双引号的转为大写。如果加双引号,需要看单个字段是否全为大写,如果该字段全为大写,那么该字段就不区分大小写。理解一下,如果不理解这里,可以查看上面测试123.
————————————————
版权声明:本文为CSDN博主「qq_32281025」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32281025/article/details/93189478