はじめに
10万行を超えるExcelデータで「特定の条件」をフィルタリングし、コピーして別シートに貼り付ける……。
この作業、人間がやるとどんなに急いでも数分はかかりますし、途中でExcelが固まってしまったら数十分のロスになります。
一方で、SQLを使ったデータ抽出は、あなたがコードを書いて「実行」ボタンを押した瞬間に、コンピュータが裏側で猛スピードで処理を始めます。
環境によって処理時間は異なりますが、「人間がチマチマとマウスを動かす時間」をほぼゼロにできるのがSQLです。
1. WHERE句の基本
WHERE句は、データベースに対して「この条件に合うものだけを見せて!」と命令する、
いわば「ふるい」の役割です。
基本の書き順
SELECT
*
FROM
`あなたのテーブル名`
WHERE
絞り込みたい条件;
一番のポイントは、必ずFROM(テーブル名)の後に書くこと。
これさえ守れば、複雑な抽出も簡単になります。
2. 手元のデータで「抽出」を体験しよう
今回アップロードしたCSVを使って、実務でよくある抽出依頼を再現します。
商品リスト(products)から「高単価商品」を抽出
例えば、価格が10,000円以上の商品だけを抜き出して、高単価アイテムのリストを作ります。
SELECT
product_name,
price
FROM
`test.products`
WHERE
price >= 10000;
このSQLを実行することで、下記のようにデータが抽出されます。

ピンク枠:
WHERE句で指定した、「判定の基準」となるカラムとそのデータを表しています。
price >= 10000 と記述することで、対象カラムを「price(金額)」に特定し、演算子(>=)によって「10,000以上であること」を条件として定義しています。
SQLは、この条件をもとに全データの中から合致するレコード(行)を探索します。
オレンジ枠:
WHERE句の条件を満たし、最終的な出力対象として「救い上げられた行」を表しています。
今回のデータセットでは、priceが10,000円以上という条件に合致するのはオレンジ枠の2行のみとなります。
グリーン枠:
SELECT句で指定した、「画面に表示させる項目」を表しています。
オレンジ枠で抽出されたレコードに対して、さらに『product_name(商品名)』と『price(金額)』の列のみを表示するよう制御しています。
最終結果

3. 実務でよく使う「条件指定」のパターン
① 文字列で絞り込む(完全一致)
顧客リスト(customers)から「東京都」のユーザーだけを抽出する場合です。文字列は必ず ‘ ‘(シングルクォーテーション) で囲みます。
SELECT
*
FROM
`test.customers`
WHERE
prefecture = '東京都'

② あいまいなキーワードで絞り込む(LIKE句)
商品名に「シャツ」が含まれるものを探すときは LIKE を使います。
SELECT
*
FROM
`test.products`
WHERE
product_name LIKE '%シャツ%'

※% は「どんな文字が入ってもOK」という記号です。
まとめ
お疲れ様でした!
今回のステップで、あなたは膨大なデータの中から「必要な情報だけ」をピンポイントで抜き出すスキルを手に入れました。