2008-10-18 68 views

回答

31

此引用的用法稱爲分隔標識符。它是SQL的一個重要組成部分,否則不能使用標識符(如表名和列名)認爲:

  • 包括空白:「我的表」
  • 包含特殊字符和標點:「我表「
  • 包括國際字符: 」私のテーブル「
  • 是區分大小寫的: 」MyTable的「
  • 比賽SQL關鍵字: 」表「

標準SQL語言對分隔標識符使用雙引號:

SELECT * FROM "my table"; 

MySQL默認使用反引號。 MySQL可以使用標準的雙引號:

SELECT * FROM `my table`; 
SET GLOBAL SQL_MODE=ANSI_QUOTES; 
SELECT * FROM "my table"; 

默認情況下,Microsoft SQL Server使用括號。 Microsoft可以使用標準雙引號:

SELECT * FROM [my table]; 
SET QUOTED_IDENTIFIER ON; 
SELECT * FROM "my table"; 

InterBase和Firebird需要將SQL方言設置爲3來支持分隔標識符。

大多數其他品牌的數據庫都正確使用雙引號。

+0

我試圖根據markdown語法來格式化back-ticks,但我似乎無法弄清楚。 – 2008-10-18 01:27:48

2

SQL Server使用[方括號]或「雙引號「QUOTED_IDENTIFIER選項爲ON時。

我相信雙引號是SQL-92標準。

2

簡而言之,是的。

SQL標準在名稱周圍使用雙引號來表示'分隔標識符'。

缺省情況下,Informix使用單引號和雙引號交替指示字符串。但是,通過設置環境變量DELIMIDENT,您可以打開SQL標準行爲 - 圍繞字符串的單引號和圍繞分隔標識符的雙引號。

其他人已經列出了其他DBMS的其他行爲;我不需要重複這些。

相關問題