在 SQL 数据库中转义列名
SQL 是否有标准化的列名转义方法?如果没有,MySQL、SQLite 和 SQL Server 支持哪些方法?
SQL 标准和标识符分隔符
SQL:1999 标准规定必须使用双引号 (") 作为分隔符来括起标识符,包括列名。
<code><delimited identifier=""> ::= <double quote=""><delimited body="" identifier=""><double quote=""></double></delimited></double></delimited></code>
对分隔列名的支持
大多数流行的 SQL 数据库,包括 Oracle、PostgreSQL、MySQL、MSSQL 和 SQLite,都支持使用双引号作为标识符分隔符。但是,并非所有数据库都将其用作默认设置。
MySQL
在 MySQL 中,要使用双引号作为列名分隔符,必须启用 ANSI 模式。
SQL Server
在 SQL Server 中,只有当 QUOTED_IDENTIFIER 选项设置为 ON 时,才支持使用双引号作为列名分隔符。
示例用法
要在这些数据库中使用双引号转义列名,只需用引号将列名括起来。
<code>SELECT * FROM "table_name" WHERE "column_name" = 'value';</code>
注意:
虽然双引号是转义列名的标准方法,但某些数据库也可能支持其他分隔符,例如方括号 ([ 和 ])。但是,通常建议使用双引号,以确保在不同数据库之间的兼容性和一致性。
以上是如何转义 MySQL、SQLite 和 SQL Server 中的列名?的详细内容。更多信息请关注PHP中文网其他相关文章!