SQLで使用できる記号についてまとめています。
SQLの記号とサンプルコード
+(プラス)、-(マイナス)、*(アスタリスク)、/(スラッシュ)
これらは、四則演算をおこなう際に使う記号です。*(アスタリスク)は掛け算、/(スラッシュ)は割り算になります。
- mysql> select 1+1;
- +-----+
- | 1+1 |
- +-----+
- | 2 |
- +-----+
- 1 row in set (0.00 sec)
- mysql> select 10-7;
- +------+
- | 10-7 |
- +------+
- | 3 |
- +------+
- 1 row in set (0.00 sec)
- mysql> select 5*5;
- +-----+
- | 5*5 |
- +-----+
- | 25 |
- +-----+
- 1 row in set (0.00 sec)
- mysql> select 20/3;
- +--------+
- | 20/3 |
- +--------+
- | 6.6667 |
- +--------+
- 1 row in set (0.00 sec)
【関連記事】
▶SQLの演算子を使って計算や値の比較をする
=(イコール)、<、>(不等号)
イコールや不等号は、主にwhere句の条件式で使用します。下記のサンプルコードは、条件式が真のときのみtrueを表示します。
- mysql> select "true" where 1=1;
- +------+
- | true |
- +------+
- | true |
- +------+
- 1 row in set (0.00 sec)
- mysql> select "true" where 1!=1;
- Empty set (0.00 sec)
- mysql> select "true" where 1=1;
- +------+
- | true |
- +------+
- | true |
- +------+
- 1 row in set (0.00 sec)
- mysql> select "true" where 1=0;
- Empty set (0.00 sec)
- mysql> select "true" where 1>0;
- +------+
- | true |
- +------+
- | true |
- +------+
- 1 row in set (0.01 sec)
- mysql> select "true" where 1<0;
- Empty set (0.00 sec)
!(エクスクラメーションマーク)
!(エクスクラメーションマーク、またはビックリマーク)は、notあるいは否定の意味で使用します。
- mysql> select "true" where 1 != 0;
- +------+
- | true |
- +------+
- | true |
- +------+
- 1 row in set (0.00 sec)
- mysql> select "true" where 1 != 1;
- Empty set (0.00 sec)
%(パーセント)、_(アンダースコア)
%(パーセント)、_(アンダースコア、アンダーバー)はlike条件式のワイルドカードとして使用します。
- mysql> select "true" where "test" like '%e%';
- +------+
- | true |
- +------+
- | true |
- +------+
- 1 row in set (0.00 sec)
- mysql> select "true" where "test" like '%d%';
- Empty set (0.00 sec)
- mysql> select "true" where "test" like 'tes_';
- +------+
- | true |
- +------+
- | true |
- +------+
- 1 row in set (0.00 sec)
- mysql> select "true" where "test" like '%s_';
- +------+
- | true |
- +------+
- | true |
- +------+
- 1 row in set (0.00 sec)
【関連記事】
▶SQLのワイルドカードは、like句にマッチング文字列を指定
@(アットマーク)
@(アットマーク)は、SQL内またはストアドプロシジャ内での変数を表すために使います。下記は、@v1という変数に値を設定し、格納された値を格納するサンプルです。変数を使った四則演算や関数に引数として渡すことも可能です。
- mysql> set @v1=100;
- Query OK, 0 rows affected (0.00 sec)
- mysql> select @v1;
- +------+
- | @v1 |
- +------+
- | 100 |
- +------+
- 1 row in set (0.00 sec)
- mysql> select @v1+200;
- +---------+
- | @v1+200 |
- +---------+
- | 300 |
- +---------+
- 1 row in set (0.00 sec)
\(バックスラッシュ/円マーク)
\(バックスラッシュ、円マーク)は、文字のエスケープに使います。ダブルクォーテーション内でダブルクォーテーションを使う場合や、タブ文字(\t)、開業(\n)を表す際に使用します。
- mysql> select "\"";
- +---+
- | " |
- +---+
- | " |
- +---+
- 1 row in set (0.00 sec)
- mysql> select "\t";
- +---+
- | |
- +---+
- | |
- +---+
- 1 row in set (0.00 sec)
- mysql> select "a\tb";
- +-----+
- | a b |
- +-----+
- | a b |
- +-----+
- 1 row in set (0.00 sec)
- mysql> select "a\nb";
- +-----+
- | a
- b |
- +-----+
- | a
- b |
- +-----+
- 1 row in set (0.00 sec)
&(アンパッサンド)/ |(パイプライン)/^(キャレット)/~(チルダ)/<<、>>(不等号2つ)
これらは、ビット演算をおこなう際に使用します。
&(アンパッサンド)は論理積、|(パイプライン)は論理和、^(キャレット)は、排他的論理和、~(チルダ)はビット反転、<<、>>(不等号2つ)は、ビットシフトをあらわします。
- ysql> select 1 & 1;
- +-------+
- | 1 & 1 |
- +-------+
- | 1 |
- +-------+
- 1 row in set (0.00 sec)
- mysql> select 1 | 1;
- +-------+
- | 1 | 1 |
- +-------+
- | 1 |
- +-------+
- 1 row in set (0.00 sec)
- mysql> select 1 ^ 1;
- +-------+
- | 1 ^ 1 |
- +-------+
- | 0 |
- +-------+
- 1 row in set (0.00 sec)
- mysql> select ~ 1;
- +----------------------+
- | ~ 1 |
- +----------------------+
- | 18446744073709551614 |
- +----------------------+
- 1 row in set (0.00 sec)
- mysql> select 1 << 1;
- +--------+
- | 1 << 1 |
- +--------+
- | 2 |
- +--------+
- 1 row in set (0.00 sec)
- mysql> select 1 << 2;
- +--------+
- | 1 << 2 |
- +--------+
- | 4 |
- +--------+
- 1 row in set (0.00 sec)
- mysql> select 1 << 4;
- +--------+
- | 1 << 4 |
- +--------+
- | 16 |
- +--------+
- 1 row in set (0.00 sec)
- mysql> select 16 >> 2;
- +---------+
- | 16 >> 2 |
- +---------+
- | 4 |
- +---------+
- 1 row in set (0.00 sec)
まとめ
- +(プラス)、-(マイナス)、*(アスタリスク)、/(スラッシュ)は四則演算
- =(イコール)、<、>(不等号)は条件式
- !(エクスクラメーションマーク)は否定
- %(パーセント)、_(アンダースコア)は、あいまい検索のワイルドカード
- @(アットマーク)は、変数
- \(バックスラッシュ/円マーク)はエスケープ文字
- &(アンパッサンド)/ |(パイプライン)/^(キャレット)/~(チルダ)/<<、>>(不等号2つ)はビット演算