不同的数据库使用不同的名称报价?

例如,mysql引用表名称使用

SELECT * FROM `table_name`; 

注意`

其他数据库是否使用不同的字符引用其表名

这种使用引号称为分隔标识符。 这是SQL的一个重要部分,否则你不能使用标识符(例如表名和列名):

  • 包含空格:“我的表”
  • 包含特殊字符和标点符号:“my-table”
  • 包含国际字符:“私のテーブル”
  • 区分大小写:“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默认使用括号。 微软可以使用标准的双引号:

 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默认使用单引号和双引号交替指示string。 但是,通过设置环境variablesDELIMIDENT,可以打开SQL标准行为 – 围绕string的单引号和围绕分隔标识符的双引号。

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