もっと詳しく
エスケープ文字とは、SQLプリプロセッサに、事前定義された操作に解釈するのではなく、リテラル文字列として文字を処理するように指示する特殊文字を指します。

たとえば、SQLの文字列は、一重引用符のペアで囲むことによって示されます。 ただし、引用符で囲まれた文字列を追加する必要がある場合は、エスケープ文字を使用しないと不可能です。 これは、SQLが2番目の一重引用符を文字列の終了ブロックとして解釈するためです。

以下に示す例を見てください。

文字列などをSQLに追加しようとすると、エラーが発生します。

SQLエスケープ一重引用符

この問題を回避する方法は、エスケープ文字を使用することです。 これらは、適切に使用されたときに特別な意味を実装する文字のセットです。

一般的なSQLエスケープ文字は次のとおりです。

  1. ‘–一重引用符をエスケープ
  2. ” –二重引用符をエスケープ
  3. b –バックスペース文字
  4. m –改行文字
  5. r –キャリッジリターン
  6. \ –バックスラッシュ文字をエスケープします
  7. %–パーセント記号をエスケープします
  8. t –タブ文字

これらは、データベースエンジンでサポートされているおなじみのエスケープ文字です。 さまざまなデータベースベンダーがカスタムエスケープ文字を実装している可能性があることに注意してください。 詳細については、データベースエンジンのドキュメントを確認してください。

次の例は、SQLで一重引用符をエスケープする方法を示しています。

一部のデータベースエンジンでは、上記の構文はサポートされていません。 たとえば、PostgreSQLで次のクエリを実行すると失敗します。

選択する ‘それs彼の家」;

その場合、PostgreSQLとSQL Serverの両方で、以下に示す構文を使用して一重引用符で囲まれた文字列をエスケープできます。

選択する ‘それ’彼の家です;

これは一重引用符をエスケープし、以下を出力する必要があります。


——————
それ彼の家です

二重引用符と一重引用符を組み合わせて使用​​して、同じ結果を得ることができます。 この方法は、二重引用符を使用して文字列を作成できるデータベースエンジンでのみサポートされていることに注意してください。 例はMySQLデータベースエンジンです。

例を以下に示します。

選択する 「それは彼の家です」 なので ストリング;

文字列を表すために二重引用符を使用するため、一重引用符は自動的にリテラル文字列の一部として扱われます。

結論

この記事では、SQLデータベースのエスケープ文字と、それらを使用して一重引用符の文字をエスケープする方法について説明しました。 この記事がお役に立てば幸いです。 その他のヒントやチュートリアルについては、他のLinuxヒントの記事を確認してください。

The post SQLエスケープ一重引用符 appeared first on Gamingsym Japan.