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

広告
eyecatch

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

文字列の入力方法

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

'文字列'
"文字列"

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

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)

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 で文字列や数値などの値を入力する方法について解説しました。

MySQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。