不同的数据库使用不同的名称报价?
例如,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的其他行为; 我不需要重复这些。