- Home ›
- MySQLの使い方 ›
- MySQLの基本構文
文字列や数値の値の入力方法
MySQL において文字列や数値などの値を入力する場合のルールについて解説します。
(2022 年 04 月 05 日公開 / 2022 年 04 月 05 日更新)
文字列の入力方法
文字列を記述する場合はシングルクォーテーション(')またはダブルクオーテーショ(")で囲んで記述します。
'文字列'
"文字列"
どちらを使っても構いませんが、比較的シングルクォーテーションを使われているケースが多いように思います。
select 'Hello', "Hello";
文字列のエスケープ処理
キーボードから入力できない文字を文字列の中で表したい場合や、特別な意味を持つ文字を入力したい場合にはエスケープ処理が必要です。次のような種類があります。
¥0 ASCII 0(NUL)文字 ¥' 単一引用符 (')文字 ¥" 二重引用符(")文字 ¥b バックスペース文字 ¥n 改行文字(LF) ¥r 復帰改行文字 ¥t タブ文字 ¥Z ASCII 26 (Control-Z) ¥¥ '¥'文字そのもの ¥% '%' 文字 ¥_ '_' 文字
※ ¥% と ¥_ は LIKE 式の中でワイルドカードとして使われる文字のため、 LIKE 式に対するパターン文字列の中でのみエスケープ処理が必要です。
改行文字やタブなどを文字列の中に含める場合には '¥n' や '¥t' を文字列の中に記述して下さい。
select 'hello¥nbye';
文字列をシングルクォーテーションで囲った場合に、文字列の中でシングルクォーテーションを使用したい場合にエスケープ処理を行って下さい。同じようにダブルクォーテーションで囲った場合に、文字列の中でダブルクォーテーションを使用したい場合もエスケープ処理を行って下さい。
¥' 単一引用符 (')文字 ¥" 二重引用符(")文字
select 'Book¥'s title', "mysql is ¥"relational¥" db";
なおこの場合は ¥' の代わりに '' 、 ¥" の代わりに "" と記述することもできます。
select 'Book''s title', "mysql is ""relational"" db";
文字列をシングルクォーテーションで囲った場合に、文字列の中でダブルクォーテーションを使用したい場合やその逆の場合にはエスケープ処理は必要ありません。
select "Book's title", 'mysql is "relational" db';
数値の入力方法
数値を記述する場合は、文字列とは異なりそのまま数値を記述して下さい。
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;
16進数の入力方法
16 進数をそのまま記述した場合、文字コードとして扱われ文字に変換されます。
select 0x41, 0x42;
16 進数を数値として扱うには 2 つ方法があります。 1 つ目は数値との演算を行う方法です。
select 0x41 + 0;
MySQL では必要に応じて文字列から数値へ変換したり、数値から文字列へ変換を行います。数値との演算(今回は 0 を加算)を行うと 16 進数は数値として処理されます。 0 を加えても結果は変わりませんので結果的に 16 進数が表す数値を取得します。
もう一つはキャスト関数を使う方法です。次のように使います。
select CAST(0x41 AS UNSIGNED);
CAST 関数は値を特定の型としてキャストします。今回の場合は符号なし整数に変換しています。
TRUEとFALSE
MySQL では定数として TRUE と FALSE が定義されており、それぞれ数値の 1 と 0 が設定されています。
select TRUE, FALSE;
なお定数は大文字小文字は区別されませんので true や false と記述することもできます。
NULL
NULL はデータが存在しないことを表す値です。大文字と小文字のどちらも使用できます。 NULL はデータが存在しないということなので、文字列における空文字 '' や数値における 0 とは異なります。
select 0, '', NULL;
-- --
MySQL で文字列や数値などの値を入力する方法について解説しました。
( Written by Tatsuo Ikura )

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