【WHEREで使える関数】

今日はWHEREの中で使える関数について書いていきます!
これらを使いこなせると欲しいデータを抽出する時にかなり速くなりますので便利です

もちろん複数組み合わせもできます!!

では下記のようなデータからそれぞれ使ってみます

データ(products )

ID 商品名 カテゴリ 価格 割引価格
1 りんご 食品 120 NULL
2 バナナ 食品 100 NULL
3 シャツ 衣類 1500 1000
4 ズボン 衣類 3000 NULL
5 洗濯機 家電 25000 20000
6 テレビ 家電 40000 35000
7 電子レンジ 家電 15000 NULL

データ(orders)

注文ID 商品ID 数量
101 1 5
102 3 2
103 5 1

①BETWEEN

SELECT * 
FROM products
WHERE 価格 BETWEEN 1000 AND 20000;

【実行結果】

ID 商品名 カテゴリ 価格 割引価格
3 シャツ 衣類 1500 1000
4 ズボン 衣類 3000 NULL
7 電子レンジ 家電 15000 NULL

【解説】
カラム BETWEEN A and B:そのカラムのA〜Bの間を抽出  ※AとBも含みます
よく日時を拾う時に使います
例:BETWEEN 2025-08-01 09:00:00 and 2025-08-01 21:00:00
これで9時21時を含むその時間のデータを抽出できます

②IN

SELECT * 
FROM products
WHERE カテゴリ IN ('食品', '家電');

【実行結果】

ID 商品名 カテゴリ 価格 割引価格
1 りんご 食品 120 NULL
2 バナナ 食品 100 NULL
5 洗濯機 家電 25000 20000
6 テレビ 家電 40000 35000
7 電子レンジ 家電 15000 NULL

【解説】
カラム in (A, B):そのカラムがAまたはBのもののみを抽出
非常に単純で分かりやすいです!数を増やせばその分拾うものを増やせます
ただAとBの間に「,」が入れるのをお忘れなく
最後にはつきません!!

③LIKE

SELECT * 
FROM products
WHERE 商品名 LIKE '%ン%';

【実行結果】

ID 商品名 カテゴリ 価格 割引価格
4 ズボン 衣類 3000 NULL
7 電子レンジ 家電 15000 NULL

【解説】
カラム LIKE ‘ABCDE’:そのカラムでABCDEのものを抽出
これが基本形ですが一番便利なのは上のコードのようなワイルドカードです

A%:Aから始まるもの 始まりさえすれば抽出できます
%E:Eで終わるもの これもEで終わっていれば抽出できます
A%E:Aから始まりEで終わるもの 
%C%:中にCが入っているもの
最初または最後が何であってもCが含まれてさえいれば抽出できます

今回の%ン%がまさにそうですね!

%と別に-もあります
使い方は、
AB[A-B]%:ABから始まり3文字目がAからBの間になるもの 
この条件だとさっきのABCDEは当てはまらないですね
[A-E][A-E][A-E][A-E][A-E]だったら当てはまります(笑)

IS NULL

SELECT * 
FROM products
WHERE 割引価格 IS NULL;

【実行結果】

ID 商品名 カテゴリ 価格 割引価格
1 りんご 食品 120 NULL
2 バナナ 食品 100 NULL
4 ズボン 衣類 3000 NULL
7 電子レンジ 家電 15000 NULL

【解説】
最後のIS NULLはとても簡単でNULLなら抽出できます!

【まとめ】
BETWEEN:範囲で絞る
IN:指定した複数の値から選択
LIKE:部分一致検索
IS NULL:NULL値を検索
この4種を使いこなせると抽出の幅が大きく広がります!
使いこなしていきましょう

コメント

タイトルとURLをコピーしました