文字列や数値の値の入力方法

MySQL において文字列や数値などの値を入力する場合のルールについて解説します。

(Last modified: )

文字列の入力方法

文字列を記述する場合はシングルクォーテーション(')またはダブルクオーテーショ(")で囲んで記述します。

'文字列'
"文字列"

どちらを使っても構いませんが、比較的シングルクォーテーションを使われているケースが多いように思います。

select 'Hello', "Hello";

文字列の入力方法(1)

文字列のエスケープ処理

キーボードから入力できない文字を文字列の中で表したい場合や、特別な意味を持つ文字を入力したい場合にはエスケープ処理が必要です。次のような種類があります。

\0    ASCII 0(NUL)文字
\'    単一引用符 (')文字
\"    二重引用符(")文字
\b    バックスペース文字
\n    改行文字(LF)
\r    復帰改行文字
\t    タブ文字
\Z    ASCII 26 (Control-Z)
\\    '\'文字そのもの
\%    '%' 文字
\_    '_' 文字

※ \% と \_ は LIKE 式の中でワイルドカードとして使われる文字のため、 LIKE 式に対するパターン文字列の中でのみエスケープ処理が必要です。

改行文字やタブなどを文字列の中に含める場合には '\n' や '\t' を文字列の中に記述して下さい。

select 'hello\nbye';

文字列のエスケープ処理(1)

文字列をシングルクォーテーションで囲った場合に、文字列の中でシングルクォーテーションを使用したい場合にエスケープ処理を行って下さい。同じようにダブルクォーテーションで囲った場合に、文字列の中でダブルクォーテーションを使用したい場合もエスケープ処理を行って下さい。

\'    単一引用符 (')文字
\"    二重引用符(")文字

select 'Book\'s title', "mysql is \"relational\" db";

文字列のエスケープ処理(2)

なおこの場合は \' の代わりに '' 、 \" の代わりに "" と記述することもできます。

select 'Book''s title', "mysql is ""relational"" db";

文字列のエスケープ処理(3)

文字列をシングルクォーテーションで囲った場合に、文字列の中でダブルクォーテーションを使用したい場合やその逆の場合にはエスケープ処理は必要ありません。

select "Book's title", 'mysql is "relational" db';

文字列のエスケープ処理(4)

数値の入力方法

数値を記述する場合は、文字列とは異なりそのまま数値を記述して下さい。

100
13.254

また正負を表す '-' や '+' を記述することができます。

-32
-0.332
+14

浮動小数点数については指数形式でも記述することができます。

1.414e+5
8.7E-3

試してみます。

select 100, 13.254, -32, -0.9, +14, 1.41e+5, 8.7E-3;

数値の入力方法(1)

16進数の入力方法

16 進数をそのまま記述した場合、文字コードとして扱われ文字に変換されます。

select 0x41, 0x42;

16進数の入力方法(1)

※ 本当は 0x41 は A 、 0x42 は B と表示されるはずですが、そのまま 0x41 と 0x42 と表示されました。理由が現状分からなかったので、分かり次第更新します。

16 進数を数値として扱うには 2 つ方法があります。 1 つ目は数値との演算を行う方法です。

select 0x41 + 0;

MySQL では必要に応じて文字列から数値へ変換したり、数値から文字列へ変換を行います。数値との演算(今回は 0 を加算)を行うと 16 進数は数値として処理されます。 0 を加えても結果は変わりませんので結果的に 16 進数が表す数値を取得します。

16進数の入力方法(2)

もう一つはキャスト関数を使う方法です。次のように使います。

select CAST(0x41 AS UNSIGNED);

16進数の入力方法(3)

CAST 関数は値を特定の型としてキャストします。今回の場合は符号なし整数に変換しています。

TRUEとFALSE

MySQL では定数として TRUE と FALSE が定義されており、それぞれ数値の 1 と 0 が設定されています。

select TRUE, FALSE;

TRUEとFALSE(1)

なお定数は大文字小文字は区別されませんので true や false と記述することもできます。

NULL

NULL はデータが存在しないことを表す値です。大文字と小文字のどちらも使用できます。 NULL はデータが存在しないということなので、文字列における空文字 '' や数値における 0 とは異なります。

select 0, '', NULL;

NULL(1)

-- --

MySQL で文字列や数値などの値を入力する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。