代表的な演算子
比較演算子は値と値が等しいかどうか、大きいかどうかなど値を比較するために使用します。MySQLで利用可能な比較演算子は以下の通りです。
演算子 | 意味 |
---|---|
= | 等しい |
> | 大きい |
>= | 以上 |
< | 小さい,未満 |
<= | 以下 |
<>,!= | 等しくない |
in() | ある値が値セット内に含まれているかどうかを確認します |
not in() | 値が値セット内に含まれていないかどうかを確認します |
is null | 値がnull |
is not null | 値がnullでない |
between …and … | 値が値の範囲内に含まれているかを確認します |
like | パターン一致 |
まず、基本的に使用例です。
列を指定してデータを取り出す
列を指定してデータを取得する場合はselect を使います。
構文 : select 列1,列2 from テーブル名;
全てのデータを取得する場合はfromの前に*を付与します。
列に別名を付ける
name,priceを→「名前」と「価格」にする場合
select name, price from テーブル名;
を以下のように書き替える名前を付与します。
select name as 名前, price as 価格 from テーブル名;
※asは省略できます。
列の値に対して演算を行う
税込み価格を出力したい場合は、4行目の部分を追加します。
select name as 名前, price as 価格, price * 1.08 as 税込価格 from テーブル名;
それでは、演算子を使ってみましょう!
条件を指定してデータを取得する
条件を指定してデータを取得する場合は whereを使います。
構文 : select 列1, 列2… from テーブル名 where 条件;
=演算子の使用例
テーブルのidが1の行を取得
select * from テーブル名 where id = 1;
品名が「品名0010」の行を取得
select * from テーブル名 where name = '品名0010';
>演算子の使用例
price(価格)が1000より大きい行を取得
select * from テーブル名 where price > 1000;
>=演算子の使用例
price(価格)が9000以上のものを取得する場合
select name, price from テーブル名 where price >= 9000;
<演算子の使用例
price(価格)が1000より小さい行を取得
select * from テープル名 where price < 1000;
<>,!=演算子(等しくない)の使用例
price(価格)が100でない行を取得
select * from テーブル名 where price <> 100;
<>の代わりに!=を使用した例
select * from テーブル名 where price != 100;
in()演算子の使用例
テーブル内のidが1か2か3の行を取得
select * from テーブル名 where id in(1,2,3);
not in()演算子の使用例
テーブル内のidが1か2か3ではない行を取得
select * from テーブル名 where id not in(1,2,3);
is null演算子の使用例
price(価格)がnullの行を取得
select * from テーブル名 where price is null;
is not null演算子の使用例
price(価格)がnullでない行取得
select * from テーブル名 where price is not null;
between …and …演算子の使用例
price(価格)が900から1000の行を取得
select * from テーブル名 where price between 900 and 1000;
以下のようにandを使っても書けます。andは論理積。条件AもBも成り立つ時にtrueを返します。
select * from テーブル名 where price >=900 and price <=1000;
以下のようにor(論理和)も使えます。条件Aか条件Bが一つ以上成り立つ場合にtrueを返します。
price(価格)が1000円又は2000円の行を取得
select * from テーブル名 where price = 1000 or price = 2000;
パターン一致
パターン一致には like句を使う。
構文 : select 列1,・・・,from テーブル名 where 列名 like ワイルドカード文字;
ワイルドカード文字について
- ワイルドカード文字で文字列のパターンを指定します。
- ‘%’ (パーセント)・・・0文字以上の任意の文字列
- ‘_’ (アンダースコア)・・・任意の1文字
- 例)
- ‘田%’ → ‘田’で始まる文字列
- ‘%田%’ → ‘田’を含む文字列
- ‘%子’ → ‘子’で終わる文字列
- ‘__子’ → 何かしらの2文字から始まり、’子’で終わる文字列
田から始まる苗字のユーザー一覧を取得(テーブル名users)
select * from users where last_name like '田%';
田を含むユーザー一覧を取得(テーブル名users)
select * from users where last_name like '%田%';
“子”で終わるユーザー一覧を取得(テーブル名users)
select * from users where first_name like '%子';
“子”で終わる3文字のユーザー一覧を取得(テーブル名users) 「_」アンダースコアが二つ入ってます。
select * from users where first_name like '__子';
コメント