例如,MySQL 使用反引号引用表名。
SELECT * FROM `table_name`;
注意 ` 的使用。
其他数据库是否有使用不同字符引用表名的情况?
引号的使用被称为定界符标识符,这是SQL的重要组成部分,否则您将无法使用标识符(例如表名和列名),这些标识符包括:
标准SQL语言使用双引号作为定界符标识符:
SELECT * FROM "my table";
MySQL默认使用反引号,但也可以使用标准的双引号:
SELECT * FROM `my table`;
SET SQL_MODE=ANSI_QUOTES;
SELECT * FROM "my table";
Microsoft SQL Server和Sybase默认使用方括号。它们都可以使用标准双引号进行如下操作:
SELECT * FROM [my table];
SET QUOTED_IDENTIFIER ON;
SELECT * FROM "my table";
为了支持被限定的标识符,InterBase 和 Firebird 需要将 SQL 方言设置为 3。
大多数其他品牌的数据库正确地使用双引号。
当QUOTED_IDENTIFIER选项为ON时,SQL Server使用[方括号]或“双引号”。
我相信双引号是SQL-92标准中的。
简而言之,是的。
SQL标准使用双引号来表示“限定符标识符”的名称。
默认情况下,Informix使用单引号和双引号可互换地表示字符串。但是,通过设置环境变量DELIMIDENT,您可以打开SQL标准行为-在字符串周围使用单引号,在限定符标识符周围使用双引号。
其他人列出了其他DBMS的其他行为; 我不需要重复这些内容。
[ ]
和" "
都可以使用。这也是预期的吗? - fedorquiQUOTED_IDENTIFIER=ON
,否则SQL Server现在默认开启了它。 - Bill KarwinTable]
,然后使用...FROM [Table]]]...
进行查询。非常奇怪的事情。再次感谢您的启示,比尔! - fedorqui