複数の条件を指定してSELECT文を実行するWebブラウザで気軽に学ぶ実践SQL講座(4)

前回は、SELECT文の初歩の初歩を解説しました。今回は、複数の条件を指定して、目的のデータを取り出す方法を解説します(編集部)

» 2012年01月13日 00時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

しばらくはSELECT文をじっくりと

連載バックナンバー


 皆さま、あけましておめでとうございます。昨年末から始まったこの連載。まずはSELECT文の初歩を解説しました。いかがでしたでしょうか?

 本連載ではこれからしばらくの間、SELECT文のいろいろな使い方、つまりデータベースからデータを取り出すさまざまな方法を解説していきます。第1回でも申し上げましたが、SELECT文の構文はSQLの中で最も易しく、そして最も難しいものです。これは、SQL文の中でもSELECT文を利用する機会がかなり多いということも意味しています。ぜひ多くのSQL文を実際に試して、皆さんの力にしてください。

「AND」や「OR」を利用して条件を並べる

 今回は、複数の条件を指定したSELECT文の書き方を解説します。第3回で説明しましたが、SQL文で検索対象を「特定の行データのみ」に制限するには、条件を指定するキーワード「WHERE」を使用します。

 第3回の例では、条件は1つしか指定しませんでした。しかし、検索の条件は1つだけとは限りません。実際のアプリケーションでは、例えば、『「男性」であり「30代」である人』のように複数の条件を指定することの方が多いでしょう。

 複数の条件を指定するには、「WHERE」句と1つ目の条件に続いて「AND」や「OR」などの論理演算子を記述し、続いて2つ目の条件を指定します。ANDを使う場合、構文は以下の通りになります。

SELECT  列名1, 列名2,……
FROM    表名
WHERE   列名 比較演算子 条件値
AND     列名 比較演算子 条件値

 ORを使う場合は以下の通りになります。

SELECT  列名1, 列名2,……
FROM    表名
WHERE   列名 比較演算子 条件値
OR      列名 比較演算子 条件値

 前後2つの条件の間にANDを入れると、どちらも満たすという意味になり、「OR」を入れると2つの条件のどちらかを満たすという意味になります。これをベン図で表すと図1のようになります。

図1 ANDとORの意味を示したベン図 図1 ANDとORの意味を示したベン図

 ここで示した構文はあくまで基本的なものです。1つのSQL文の中に、ANDとORの両方の論理演算子を入れることや、ANDやORを複数指定することもできます。

 では、第2回で用意したSQL実行環境で、ANDやORを使ったSELECT文を実行してみましょう。例えば、EMP表のDEPTNO(部門)が20であり、かつJOB(職種)がMANAGERである社員を検索するには、以下のように条件を指定します。

SELECT  ename, deptno, job
FROM    emp
WHERE   deptno=20 AND job='MANAGER';

 実行すると図2のように結果が返ってきます。

図2 ANDを使ったSELECT文の実行結果 図2 ANDを使ったSELECT文の実行結果

 先に挙げたSELECT文のANDの部分をORに変えると、以下のようになります。

SELECT  ename, deptno, job
FROM    emp
WHERE   deptno=20 OR job='MANAGER';

 実行すると図3のように、DEPTNO(部門)が20である全社員と、JOB(職種)がMANAGERである全社員の両方が結果として返ってきます。

図3 ORを使ったSELECT文の実行結果 図3 ORを使ったSELECT文の実行結果

論理演算子の優先順位

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。