Ste*_*eve 44 oracle database-design case-sensitive
有没有理由说Oracle是区分大小写的,其他像SQL Server和MySQL不是默认的?
我知道有一些方法可以启用/禁用区分大小写,但是oracle与其他数据库的不同之处似乎很奇怪.
我也试图理解区分大小写的原因.我可以看到"Table"和"TaBlE"在哪里可以被认为是等价的而不是等价的,但是有一个例子,区分大小写实际上会有所不同吗?
我对数据库有些新意,目前正在上课.
Nul*_*ion 68
默认情况下,Oracle标识符(表名,列名等)不区分大小写.您可以通过使用它们周围的引号使它们区分大小写(例如:) SELECT * FROM "My_Table" WHERE "my_field" = 1.SQL关键字(SELECT,WHERE,JOIN等)总是不区分大小写.
另一方面,字符串比较是区分大小写的(例如:WHERE field='STRING'只会匹配它所在的列'STRING').您可以通过设置NLS_COMP和NLS_SORT适当的值(例如:LINGUISTIC和BINARY_CI,分别)使它们不区分大小写.
注意:在查询数据字典视图(例如
dba_tables:)时,如果您创建的名称没有引号,则名称将为大写,并且第二段中说明的字符串比较规则将适用于此处.
某些数据库(Oracle,IBM DB2,PostgreSQL等)默认情况下会执行区分大小写的字符串比较,其他数据库不区分大小写(SQL Server,MySQL,SQLite).这绝不是标准,所以只需要知道你的数据库设置是什么.
| 归档时间: |
|
| 查看次数: |
64416 次 |
| 最近记录: |