oracle是区分大小写的原因?

有没有理由为什么Oracle是区分大小写的,而其他人喜欢SQL Server和MySQL不是默认情况下?

我知道有方法来启用/禁用区分大小写,但似乎奇怪的是oracle与其他数据库不同。

我也试图理解区分大小写的原因。我可以看到“表”和“TaBlE”可以被认为是等效的,而不是等价的,但是有一个例子,情况灵敏度实际上会有区别吗?

我对数据库有点新,我目前正在上课。

默认情况下,Oracle标识符(表名,列名称等)不区分大小写。您可以使用引号(例如:SELECT * FROM“My_Table”WHERE“my_field”= 1)使它们区分大小写。 SQL关键字(SELECT,WHERE,JOIN等)始终不区分大小写。

另一方面,字符串比较默认情况下是区分大小写的(例如:WHERE字段=’STRING’将只匹配它的’STRING’的列)。通过将NLS_COMP和NLS_SORT设置为适当的值,可以使它们不区分大小写(例如:分别为LINGUISTIC和BINARY_CI)。

Note: When inquiring data dictionary views (eg: dba_tables) the names will be in upper-case if you created them without quotes,and the string comparison rules as explained in the second paragraph will apply here.

默认情况下,一些数据库(Oracle,IBM DB2,PostgreSQL等)将执行区分大小写的字符串比较,其他数据库不区分大小写(SQL Server,MySQL,SQLite)。这不是任何方式的标准,所以只要知道你的数据库设置是什么。

相关文章

文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符...
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远...
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语...
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseErr...
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Or...
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点...