跳轉到內容

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 模式下執行。
華夏公益教科書