データベース・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つのテクニックを学びました。
AND / OR / NOT:複雑な条件で絞り込む
BETWEEN:期間や数値の範囲を指定する
ORDER BY:結果をキレイに並べ替える
GROUP BY:データをまとめて集計する
これらを組み合わせることで、あなたが欲しいデータを自由自在にデータベースから引っ張り出すことができるようになります。
次回は、SQLの醍醐味である「複数のテーブルをガッチャンコして結合する(JOIN)」方法について解説します。一気に本格的になりますので、お楽しみに!
いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!