Oracle 默认区分大小写,而 SQL Server 和 MySQL 等其他数据库默认不区分大小写,这是否有原因?
我知道有一些方法可以启用/禁用区分大小写,但 Oracle 与其他数据库不同似乎很奇怪。
我还试图了解区分大小写的原因。我可以看到“Table”和“TaBlE”在哪里可以被认为是等效的,但是否有一个例子,区分大小写实际上会产生影响?
我对数据库有点陌生,目前正在上课。
默认情况下,Oracle 标识符(表名、列名等)是大小写的不敏感的。您可以通过在它们周围使用引号来使它们区分大小写(例如:SELECT * FROM "My_Table" WHERE "my_field" = 1
)。 SQL 关键字 (SELECT
, WHERE
, JOIN
等)始终不区分大小写。
另一方面,字符串比较是大小写-敏感的 (eg: WHERE field='STRING'
只会匹配它所在的列'STRING'
) 默认情况下。您可以通过设置使它们不区分大小写NLS_COMP
and NLS_SORT
到适当的值(例如:LINGUISTIC
and BINARY_CI
, 分别)。
注意:查询数据字典视图时(例如:dba_tables
) 如果您创建的名称不带引号,则名称将为大写,并且第二段中说明的字符串比较规则将适用于此处。
某些数据库(Oracle、IBM DB2、PostgreSQL 等)默认执行区分大小写的字符串比较,而其他数据库(SQL Server、MySQL、SQLite)则不区分大小写。无论如何,这都不是标准的,因此请注意您的数据库设置是什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)