メインコンテンツまでスキップ

文字列型リテラル

説明

文字列は、単一引用符(')または二重引用符(")で囲まれたバイトまたは文字の並びです。例えば:

'a string'
"another string"

エスケープ文字

文字列では、NO_BACKSLASH_ESCAPES SQLモードが有効でない限り、特定のシーケンスは特別な意味を持ちます。これらのシーケンスはバックスラッシュ()で始まり、これはエスケープ文字として知られています。Dorisで認識されるエスケープ文字は以下のテーブルに記載されています:

エスケープ文字意味
\0ASCII文字 NUL ('X'00')
\'単一引用符 (')
\"二重引用符 (")
\bバックスペース
\n改行
\r復帰改行
\tタブ
\ZASCII 26 (Control+Z)
\\バックスラッシュ (\)
\%パーセント記号 %。詳細は下記の注意事項を参照
\_アンダースコア _。詳細は下記の注意事項を参照

注意事項

  1. パターンマッチングのコンテキストでは、%_は通常ワイルドカードとして解釈されますが、シーケンス\%\_を使用することで%_のリテラルインスタンスを検索できます。詳細については、「パターンマッチング演算子」セクションのLIKE演算子の説明を参照してください。\%または\_がパターンコンテキスト外で使用された場合、これらは%_ではなく、文字列\%\_として計算されます。
  2. テーブルに記載されていないエスケープ文字のバックスラッシュは無視されます。例えば、'\y''y'は等価です。

文字列リテラルでの引用符の使用

文字列に引用符文字を含めるには、いくつかの方法があります:

  • 単一引用符(')で囲まれた文字列では、単一引用符は2つの単一引用符('')として記述できます。
  • 二重引用符(")で囲まれた文字列では、二重引用符は2つの二重引用符("")として記述できます。
  • 引用符文字の前にエスケープ文字(\)を追加します。
  • 二重引用符で囲まれた文字列に単一引用符を含める場合、特別な処理は必要なく、単一引用符を二重にしたりエスケープしたりする必要もありません。同様に、単一引用符で囲まれた文字列に二重引用符を含める場合、特別な処理は必要ありません。