不同的数据库使用不同的名称引用?

时间:2008-10-18 01:02:10

标签: mysql database

例如,使用

的mysql引用表名
SELECT * FROM `table_name`;

注意`

其他数据库是否使用不同的char来引用其表名

3 个答案:

答案 0 :(得分:32)

这种引号的使用称为分隔标识符。它是SQL的重要组成部分,因为否则您不能使用以下标识符(例如表名和列名):

  • 包括空格:“我的桌子”
  • 包含特殊字符和标点符号:“my-table”
  • 包括国际字符:“私のテーブル”
  • 区分大小写:“MyTable”
  • 匹配SQL关键字:“table”

标准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以支持分隔标识符。

大多数其他品牌的数据库都正确使用双引号。

答案 1 :(得分:2)

当QUOTED_IDENTIFIER选项为ON时,SQL Server使用[方括号]或“双引号”。

我认为双引号符合SQL-92标准。

答案 2 :(得分:2)

简洁,是的。

SQL标准在名称周围使用双引号来表示“分隔标识符”。

默认情况下,Informix可互换使用单引号和双引号来表示字符串。但是,通过设置环境变量DELIMIDENT,您可以打开SQL标准行为 - 围绕字符串的单引号和围绕分隔标识符的双引号。

其他人列出了其他DBMS的其他行为;我不需要重复这些。