跳转到内容

SQL 方言参考/数据结构定义/分隔标识符

来自维基教科书,开放的书籍,为开放的世界

分隔标识符

[编辑 | 编辑源代码]

有**普通标识符**和**分隔标识符**来表示数据库对象,如表或列。如果要使用 SQL 关键字(如 'FROM')作为标识符,或者在标识符名称中使用特殊字符,则必须使用分隔标识符。分隔标识符通过以下技术来标记。

方言 示例 注释
标准 "identifier" SQL 标准将这些称为“分隔标识符”。SQL 标准要求分隔标识符区分大小写,但并非所有服务器都强制执行此规则。
DB2 "identifier" 根据标准区分大小写,并且也允许使用特殊字符。
Firebird "identifier" 根据标准区分大小写。
Ingres "identifier" 在创建数据库时指定分隔标识符的大小写敏感性。为了符合 ANSI/ISO Entry SQL-92,分隔标识符必须区分大小写。
Linter "identifier" 根据标准区分大小写。
MonetDB "identifier" 根据标准区分大小写。
MSSQL [identifier]
"identifier"[1]
大小写敏感性由每个数据库的选项设置。
MySQL `identifier`
"identifier"[2]
Oracle "identifier" 根据标准区分大小写。未加双引号时不区分大小写:它们在执行任何语句之前被转换为大写,例如:'CrEAtE table MyTable' 被转换为 'CREATE TABLE MYTABLE'。这符合标准。
PostgreSQL "identifier" 根据标准区分大小写。未加双引号时不区分大小写(转换为小写 - 虽然根据标准它应该是大写)。
SQLite [identifier]
"identifier"
'identifier'
identifier
始终不区分大小写,即使加引号也是如此。带方括号的关键字始终被理解为标识符。加双引号的关键字如果之前被视为标识符,则会被理解为标识符,否则会被解释为字符串字面量。加单引号的关键字如果允许,则会被解释为字符串字面量,否则会被解释为标识符。某些关键字即使不加引号,也可以用作标识符。
Virtuoso "identifier"  

备注

  1. 如果quoted_identifier 选项设置为on — 否则,"identifier" 会被解析为带单引号的字符串。
  2. 如果在 ANSI 模式下运行。
华夏公益教科书