見出し画像

データベース・SQL入門 第2回:思い通りにデータを絞り込み、並べ替えよう!

前回の第1回では、データベースの基礎知識と、データを取り出すための基本の魔法 SELECT 句、そして WHERE 句を使ったシンプルな絞り込みについて学びました。

しかし、実際のビジネス現場で扱うデータは膨大です。「今月の売上が500円以上の商品だけを見たい」「特定の条件Aと条件Bを両方満たす顧客を探したい」など、より複雑なリクエストに応える必要があります。

第2回となる今回は、SQLをさらに使いこなすための「複数条件の組み合わせ」「範囲指定」「並べ替え」、そして「集計」のテクニックを一気にマスターしていきましょう!


1. 複雑な条件を組み合わせる(AND, OR, NOT)

WHERE 句による絞り込みは、論理演算子(AND, OR, NOT)を使うことで劇的に自由度が上がります。

① AND(かつ):両方の条件を満たす

「住所が東京」かつ「メールアドレスが @gmail.com」の顧客を探したい場合は、AND で条件をつなぎます。

SELECT * FROM KOKYAKU 
WHERE ADDRESS LIKE '%東京%' 
AND MAIL LIKE '%@gmail.com%';

条件を厳しくして、ピンポイントでデータを抽出したい時によく使います。

② OR(または):どちらかの条件を満たす

「IDが C001」または「IDが C002」のどちらかに当てはまるデータを出したい場合は、OR を使います。

SELECT * FROM KOKYAKU 
WHERE ID = 'C001' 
OR ID = 'C002';

条件の幅を広げたい時に便利です。※条件が複雑になる場合は ( ) で囲んで優先順位を明確にするのがコツです。

③ NOT(〜でない):条件を除外する

特定の条件を「除外」したい場合は NOT を使います。

SELECT * FROM KOKYAKU 
WHERE NOT (ADDRESS LIKE '%東京%');

これで「住所に『東京』が含まれない」顧客リストを一発で作成できます。


2. 数値や日付の範囲で絞り込む(>=, <=, BETWEEN)

データ分析では「いつからいつまで」「いくら以上」といった範囲指定が欠かせません。

① 比較演算子を使う

「価格(PRICE)が500より大きい商品」を探すなら、不等号を使います。

SELECT SNO, SNAME, PRICE FROM SHOHIN 
WHERE PRICE > 500;
  • >(より大きい)、 <(より小さい)

  • >=(以上)、 <=(以下)

② BETWEEN で「〜から〜まで」を指定する

特に日付の範囲を指定する際に便利なのが BETWEEN(ビトウィーン)です。例えば、2023年8月1日から8月31日までの受注(JDATE)を探す場合はこう書きます。

SELECT ID, JDATE FROM JUCHU 
WHERE JDATE BETWEEN '2023-08-01' AND '2023-08-31';

直感的で非常に読みやすいコードになりますね。


3. データをキレイに並べ替える(ORDER BY)

抽出したデータは、デフォルトでは順番がバラバラです。見やすい表にするために ORDER BY(オーダーバイ)を使ってデータを並べ替えましょう。

例えば、商品の価格が高い順(降順)に並べ替えるには DESC をつけます。

SELECT * FROM SHOHIN 
WHERE PRICE > 500 
ORDER BY PRICE DESC;
  • DESC(Descending):降順(大きい順、新しい順)

  • ASC(Ascending):昇順(小さい順、古い順)※省略した場合は自動的にASCになります。


4. データをグループ化して集計する(GROUP BY)

SQLの強力な機能の一つが、Excelのピボットテーブルのような「集計」です。

集計には、以下のような集計関数を使います。

  • SUM():合計

  • MAX():最大値

  • MIN():最小値

  • AVG():平均

  • COUNT():件数

これらを GROUP BY と組み合わせることで、「商品ごとの売上合計」などを簡単に算出できます。

SELECT SNO, SUM(ITEM) FROM MEISAI 
GROUP BY SNO;

このコードは「明細テーブル(MEISAI)を商品番号(SNO)ごとにグループ化し、それぞれの数量(ITEM)の合計(SUM)を計算して!」という命令になります。


まとめ

今回は以下の4つのテクニックを学びました。

  1. AND / OR / NOT:複雑な条件で絞り込む

  2. BETWEEN:期間や数値の範囲を指定する

  3. ORDER BY:結果をキレイに並べ替える

  4. GROUP BY:データをまとめて集計する

これらを組み合わせることで、あなたが欲しいデータを自由自在にデータベースから引っ張り出すことができるようになります。

次回は、SQLの醍醐味である「複数のテーブルをガッチャンコして結合する(JOIN)」方法について解説します。一気に本格的になりますので、お楽しみに!

いいなと思ったら応援しよう!

人生ライブラリ よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!