
前回の記事では、データベースからデータを取り出す「SELECT文」の基本をお伝えしました。今回はその続き——条件を使ってもっと細かく絞り込む方法を解説します!
前回のおさらい
前回はWHERE句の基本として「category = 'コーヒー'」のように、ぴったり一致するものを取り出す方法をご紹介しました。
でも実際の仕事では「500円以下のメニューだけ知りたい」「名前に”ラテ”が含まれるものを探したい」といった場面も多いですよね。そこで活躍するのが比較演算子とLIKE述語です。
比較演算子とは?
比較演算子とは、条件を比べるための記号のことです。Excelのフィルター機能で「以上」「未満」を選ぶのと同じ感覚です。
| 演算子 | 意味 | 使用例 |
|---|---|---|
= | ~と等しい | price = 500 |
<> | ~と等しくない | category <> 'コーヒー' |
> | ~より大きい | price > 400 |
>= | ~以上 | price >= 500 |
< | ~より小さい | price < 500 |
<= | ~以下 | price <= 450 |
実際に使ってみよう
前回と同じカフェのメニュー表を使います。
| menu_id | menu_name | category | price |
|---|---|---|---|
| 001 | アメリカーノ | コーヒー | 350 |
| 002 | カフェラテ | コーヒー | 450 |
| 003 | 抹茶ラテ | ティー | 500 |
| 004 | チョコケーキ | スイーツ | 600 |
| 005 | チーズケーキ | スイーツ | 550 |
「500円以下のメニューだけ取り出したい」
sql
SELECT * FROM cafe_menu WHERE price <= 500;
結果はアメリカーノ(350円)、カフェラテ(450円)、抹茶ラテ(500円)の3件です。
「コーヒー以外のメニューを見たい」
sql
SELECT * FROM cafe_menu WHERE category <> 'コーヒー';
<>は「等しくない」という意味です。コーヒー以外の、ティーとスイーツが返ってきます。
LIKE述語——あいまい検索ができる!
「名前に”ラテ”という文字が含まれるものを探したい」というとき、完全一致の=では対応できません。そこで使うのがLIKE述語です。
LIKE述語では、%(パーセント)という特別な記号を使います。
| 書き方 | 意味 |
|---|---|
'ラテ%' | 「ラテ」で始まるもの |
'%ラテ' | 「ラテ」で終わるもの |
'%ラテ%' | 「ラテ」を含むもの(前後どこでもOK) |
「名前に”ラテ”を含むメニューを取り出したい」
sql
SELECT * FROM cafe_menu WHERE menu_name LIKE '%ラテ%';
結果はカフェラテと抹茶ラテの2件です。「カフェラテ」も「抹茶ラテ」も、どちらも”ラテ”という文字を含んでいるので引っかかります。
Excelで言うと、検索窓に「ラテ」と入力して部分一致で検索するのと同じイメージです。
「名前が”ケーキ”で終わるメニューを取り出したい」
sql
SELECT * FROM cafe_menu WHERE menu_name LIKE '%ケーキ';
結果はチョコケーキとチーズケーキです。末尾が「ケーキ」で終わるものだけが返ってきます。
AND・ORで条件を組み合わせる
「コーヒーカテゴリで、かつ400円以上のもの」のように、複数の条件を同時に使うこともできます。
sql
SELECT * FROM cafe_menu WHERE category = 'コーヒー' AND price >= 400;
「AND」は「かつ」、「OR」は「または」という意味です。
| 書き方 | 意味 | 結果のイメージ |
|---|---|---|
条件A AND 条件B | AかつB(両方満たす) | 範囲が狭まる |
条件A OR 条件B | AまたはB(どちらか満たす) | 範囲が広がる |
まとめ
今回のポイントをまとめます。
| やりたいこと | 書き方の例 |
|---|---|
| 500円以下のデータを取り出す | WHERE price <= 500 |
| コーヒー以外を取り出す | WHERE category <> 'コーヒー' |
| “ラテ”を含む名前を取り出す | WHERE menu_name LIKE '%ラテ%' |
| 複数条件を同時に使う | WHERE ... AND ... |
比較演算子とLIKEを使いこなせると、データの絞り込みがグッと自由になります。「そういえばExcelでもこういう絞り込みやってた!」という感覚で覚えると、スムーズに身につきますよ。
次回は、SQLで使える文字列関数・日付関数・変換関数をExcelの関数と比較しながら解説します。「ExcelのLEFT関数ってSQLにもあるの?」という疑問にもお答えします!
職業訓練校でJava・データベースを学んだ40代3児の母がITエンジニアを目指して日々奮闘中。同じように学習中の方と一緒に成長していけたら嬉しいです!


コメント