SQL データベースの列名をエスケープします
SQL には列名をエスケープする標準化された方法がありますか?サポートされていない場合、MySQL、SQLite、SQL Server ではどのようなメソッドがサポートされていますか?
SQL 標準と識別子の区切り文字
SQL:1999 標準では、列名を含む識別子を区切り文字として二重引用符 (") で囲む必要があると規定しています。
<code><delimited identifier=""> ::= <double quote=""><delimited body="" identifier=""><double quote=""></double></delimited></double></delimited></code>
区切り文字で区切られた列名のサポート
Oracle、PostgreSQL、MySQL、MSSQL、SQLite などの最も一般的な SQL データベースは、識別子の区切り文字として二重引用符の使用をサポートしています。ただし、すべてのデータベースがこれをデフォルト設定として使用するわけではありません。
MySQL
MySQL で二重引用符を列名の区切り文字として使用するには、ANSI モードを有効にする必要があります。
SQL サーバー
SQL Server では、QUOTED_IDENTIFIER オプションが ON に設定されている場合にのみ、二重引用符が列名の区切り文字としてサポートされます。
使用例
これらのデータベースで二重引用符を使用して列名をエスケープするには、列名を引用符で囲むだけです。
<code>SELECT * FROM "table_name" WHERE "column_name" = 'value';</code>
注:
二重引用符は列名をエスケープする標準的な方法ですが、データベースによっては角括弧 ([ と ]) などの他の区切り文字もサポートしている場合があります。ただし、異なるデータベース間での互換性と一貫性を確保するために、通常は二重引用符を使用することをお勧めします。
以上がMySQL、SQLite、SQL Server で列名をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。