SQL标准转义列名称?
有没有一个SQL标准来转义列名? 如果不是什么适用于MySQL和SQLite? 它也适用于sqlserver?
SQL-99标准指定使用双引号(“)来分隔标识符。
Oracle,PostgreSQL,MySQL,MSSQL和SQlite都支持“作为标识符分隔符(尽pipe它们并不是全部使用”作为“默认”),例如,您必须以ANSI模式运行MySQL,并且SQL Server只在QUOTED_IDENTIFIER
已ON
。)
据SQLite介绍 ,
-
'foo'
是一个SQLstring -
"foo"
是一个SQL标识符(列/表/等) -
[foo]
是MS SQL中的标识符 -
`foo`
是MySQL中的一个标识符
对于限定名称,语法是: "t"."foo"
或[t].[foo]
等
当ANSI_QUOTES
选项被启用时,MySQL支持标准的“foo”。
对于MS SQL使用[和]
SELECT [COLUMN], [COLUMN 2] FROM [TABLE]
对于MySQL,使用ticks`。
例如:
SELECT `column`, `column2` FROM `table`
对于DBASE / DBF使用[
和]
SELECT [DATE], [TIME], [ANY_OTHER_TO_BE_ESCAPED_COLUMN] FROM [TABLE]