10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国Ltr)- 26.8 mb
PDF (A4)- 26.8 mb


9.1.1文字列リテラル

文字列は,単一引用符()または二重引用符()で囲まれたバトまたは文字のシトまたは文字のシケンスです。例:

"一个字符串" "另一个字符串"

隣同士にある引用符付きの文字列は,1の文字列に連結されます。次の行は同等です。

'a string' 'a' ' ' 'string'

ANSI_QUOTESSQLモードを有効にしている場合は,二重引用符で囲んだ文字列は識別子として解釈されるため,文字列リテラルを囲む引用符には単一引用符だけを使用できます。

バ邮箱ナリ文字列とは、文字セットや照合順序を持たないバ以及ト文字列のことです。非バ邮箱ナリ文字列とは,文字セットや照合順序を持文字列のことです。これらの両方の文字列タプは,文字列単位の数値に基づいて比較されます。バereplicationナリ文字列の場合,単位はバereplicationトです。非バ邮箱ナリ文字列の場合、単位は文字であり、マルチバイト文字をサポートする文字セットもあります。文字値の順序は、文字列照合順序の関数です。

文字列リテラルでは、オプションとして文字セット核对句を指定できます。

(_charset_name]“字符串(核对collation_name

例:

选择_latin1”字符串”;选择_latin1”字符串' COLLATE latin1_danish_ci;

N '文字(または)n '文字)を使用すると,各国文字セットの文字列を作成できます。次のステトメントは同等です。

SELECT N'some text';SELECT n'some text';SELECT _utf8'some text';

これらの文字列構文の形式の詳細は,セクション10.1.3.5 "文字列リテラルの文字セットおよび照合順序"およびセクション10.1.3.6 "各国文字セット"を参照してください。

NO_BACKSLASH_ESCAPESSQLモドが有効になっている場合を除いて,一部のシます。これらのシケンスはいずれも,エスケプ文字として知られるバックスラッシュ(で始まります。MySQLは,表9.1 "特殊文字エスケプシケンス"に示すエスケプシケンスを認識します。ほかのすべてのエスケプシケンスでは,バックスラッシュは無視されます。。たとえば,x \は単なるxです。これらのシケンスでは大文字と小文字が区別されます。たとえば,\ bはバックスペスと解釈されますが,\ BBと解釈されます。エスケプ処理はcharacter_set_connectionシステム変数で指定された文字セットに応じて実行されます。セクション10.1.3.5 "文字列リテラルの文字セットおよび照合順序"で説明するとおり,ほかの文字セットを示すイントロデューサが前に置かれている文字列についても同じことがいえます。

表9.1特殊文字エスケプシケンス

エスケプシケンス シケンスが表す文字
\ 0 ASCII null (0 x00) 文字。
\ ' 単一引用符 () 文字。
\” 二重引用符 () 文字。
\ b バックスペス文字。
\ n 改行(ラ)文字。
r \ 復帰改行文字。
\ t タブ文字。
\ Z ASCII 26 (Ctrl+Z)。表に続いて記されている注釈を参照してください。
\\ バックスラッシュ() 文字。
\ % 文字。表に続いて記されている注釈を参照してください。
\ _ _文字。表に続いて記されている注釈を参照してください。

ASCII 26文字を\ Zとしてエンコードすると,WindowsでASCII 26が文件尾を表すという問題を回避できます。mysqldb_name<file_nameを使用しようとすると,ファ正则表达式ル内のASCII 26が問題を引き起こします。

\ %および\ _シケンスは,パタンスタンスおよび_を検索するために使用されます(パターンマッチングコンテキスト以外ではワイルドカード文字として解釈される)。セクション12.5.1 "文字列比較関数"内の就像演算子に関する記述を参照してください。パタンマッチングコンテキスト以外で\ %または\ _を使用すると,_ではなく,文字列\ %\ _として評価されます。

文字列に引用符を含める方法は,いくかあります。

  • で囲んだ文字列内でを使用する場合は,''と記述します。

  • で囲んだ文字列内でを使用する場合は,""と記述します。

  • 引用符文字の直前にエスケプ文字(を指定します。

  • で囲んだ文字列内でを使用する場合,引用符を2つ続けて入力したり,エスケープしたりなどの特別な処理は必要はありません。同様に,で囲んだ文字列内でを使用する場合も,特別な処理は必要ありません。

次の选择ステートメントは,引用符を使用した場合とエスケープを使用した場合にどのような効果があるかを示しています。

mysql >选择“你好”,“你好”,“”“你好”“”、“冥界”lo”、“\ '你好';+-------+---------+-----------+--------+--------+ | 你好|“hello”|“你好”“|冥界'lo |“你好  | +-------+---------+-----------+--------+--------+ mysql >选择“你好”,“你好”,”“你好”,“冥界”“瞧”,“\”你好”;+-------+---------+-----------+--------+--------+ | 你好|“你好”|“hello”|帮助“lo |“你好  | +-------+---------+-----------+--------+--------+ mysql >选择“这\ nIs \ nFour \在线”;+--------------------+ | 这是四行  | +--------------------+ mysql >选择“消失\反斜杠”;+------------------------+ | 反斜杠消失  | +------------------------+

文字列カラム(カラムなど)にバイナリデータを挿入する場合,ある種の文字はエスケープシーケンスで表現してください。バックスラッシュ()と,文字列を囲む引用符は,エスケ,プする必要があります。ある種のクラアント環境では,やCtrl+Zもエスケプする必要があります。mysqlクラアントは,文字がエスケプされていない場合,これを含む引用符付きの文字列を切り捨てます。Ctrl + Zはエスケープされていない場合,Windowsで文件尾を表すと見なされる可能性があります。これらのそれぞれの文字を表すエスケプシケンスに,表9.1 "特殊文字エスケプシケンス"を参照してください。

アプリケーションプログラムを書く場合,MySQL服务器に送信されるSQLステートメント内で文字列がデータ値として使用される前に,これらの特殊文字を含む可能性のある文字列は適切にエスケープする必要があります。これには次の2の方法があります。