目前数据库案例的标准是什么

What is currently the standard for database case

所以我阅读了大量关于数据库和编程的惯例。但是,我不记得是否有人建议数据库的标准案例。

数据库区分大小写是标准还是不区分大小写?

我知道一些数据库技术的默认情况各不相同(SQL、Oracle、mysql 等)这不是我要找的,因为默认情况因为某些技术可能再次成为标准。

谢谢

据我所知,SQL 2008 and SQL 1999 将数据库定义为不区分大小写。但是有一些数据库是符合标准的,也有一些是有例外的。所以这取决于你使用的是哪个数据库。您必须遵循所使用的数据库定义的规则。

假设您使用的是 Oracle,那么可以肯定它完全符合标准。但是假设您正在使用 MySql 然后它依赖于文件系统,如下面的查询 windows works

CREATE TABLE TEST (ID INTEGER);
CREATE TABLE "Test" (ID INTEGER); -- Gives Errors , table already exists

但在 linux 上有效

CREATE TABLE TEST (ID INTEGER);
CREATE TABLE "Test" (ID INTEGER); -- Creates the table Test

SQL 标准要求 un 引用的标识符区分大小写 in。这从一开始就在 SQL 标准中(早在 1986 年左右)

带引号 标识符区分大小写

所以根据标准 fooFOO 是相同的,但是 "foo""FOO" 不是。

如果你在谈论字符值的比较,那么 SQL 标准使它依赖于字符串定义的排序规则:“两个字符串表达式的比较取决于关于用于比较的排序规则"

标准列出了一些排序规则名称,但没有提及它们是否应该区分大小写。事实上 "collation descriptor" 的文档只列出:

  • The name of the collation.
  • The name of the character repertoire to which it is applicable.
  • A list of the names of the character sets to which the collation can be applied.
  • Whether the collation has the NO PAD or the PAD SPACE characteristic.