ゆる~く覚えるSQL入門:複数条件を指定してデータを検索する【AND・OR】

  • 2020年9月21日
  • 2020年9月21日
  • IT, SQL
  • 1view
IT

今回の記事では複数条件を指定して、データを検索する方法をご紹介します。

WHERE句にANDやORを記載して条件を追加記載するだけなので、簡単です!

それではやっていきましょう!

SQL文入門:パン屋さんのmenuテーブルで考えてみよう

テーブル名:menu

id name price category
1 メロンパン 200 菓子パン
2 カレーパン 300 総菜パン
3 カツサンド 400 総菜パン
4 デニッシュ 300 菓子パン
5 バターロール 200 総菜パン
6 食パンプレミアム 500 総菜パン
7 期間限定マロンクリームコロネ 600 菓子パン

今回も簡単な題材として、パン屋さんのmenuテーブルを例にSQL文を学習してきます。

【AND】AかつB 両方の条件を満たすデータを検索する

例えばSQL文を書いていて、AかつBのデータを検索したいときに使うのが、ANDです。

ANDを使うことで例えば200以上かつ1000以下といった複数条件を指定をしてデータを検索できます。

ANDを使ったSQLの書き方は以下の通りです。

select カラム名
from テーブル名
where カラム名1 条件1 
and カラム名2 条件2
;

では、パン屋さんのmenuテーブルから、値段(price)が300円以上かつカテゴリー(category)が菓子パンのものを検索してみたいと思います。

SQL文は以下のように記載します。

・priceが300円以上かつcategoryが菓子パンのものを検索

select *
from menu
where price >= 300 
and category = "菓子パン"
;

↓↓↓↓実行してみると

・実行結果

id name price category
4 デニッシュ 300 菓子パン
7 期間限定マロンクリームコロネ 600 菓子パン

値段が400円以上の菓子パンのデータのみを検索できました。

【OR】AまたはB 片方または両方の条件を満たすデータを検索する

次にSQL文を書いていて、AまたはBのデータを検索したいときに使うのが、ORです。

ORを使ったSQLの書き方は以下の通りです。

select カラム名
from テーブル名
where カラム名1 条件1 
or カラム名2 条件2
;

では、パン屋さんのmenuテーブルから、名前(name)にパンが含まれるまたはカテゴリー(category)が菓子パンのものを検索してみたいと思います。

SQL文は以下のように記載します。

・nameにパンが含まれるまたはカテゴリーcategoryが菓子パンのものを検索

select *
from menu
where name like "%パン%" 
or category = "菓子パン"
;

↓↓↓↓実行してみると

・実行結果

id name price category
1 メロンパン 200 菓子パン
2 カレーパン 300 総菜パン
4 デニッシュ 300 菓子パン
6 パンプレミアム 500 総菜パン
7 期間限定マロンクリームコロネ 600 菓子パン

名前にパンが含まれるまたはカテゴリーが菓子パンのものを検索できました。

まとめ

今回の記事をまとめると

  • AかつBのデータを検索するときはANDを使う
  • AまたはBのデータを検索するときはORを使う
最新情報をチェックしよう!