前回は、SELECT文の初歩の初歩を解説しました。今回は、複数の条件を指定して、目的のデータを取り出す方法を解説します(編集部)
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
皆さま、あけましておめでとうございます。昨年末から始まったこの連載。まずはSELECT文の初歩を解説しました。いかがでしたでしょうか?
本連載ではこれからしばらくの間、SELECT文のいろいろな使い方、つまりデータベースからデータを取り出すさまざまな方法を解説していきます。第1回でも申し上げましたが、SELECT文の構文はSQLの中で最も易しく、そして最も難しいものです。これは、SQL文の中でもSELECT文を利用する機会がかなり多いということも意味しています。ぜひ多くのSQL文を実際に試して、皆さんの力にしてください。
今回は、複数の条件を指定した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つの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のように結果が返ってきます。
先に挙げたSELECT文のANDの部分をORに変えると、以下のようになります。
SELECT ename, deptno, job FROM emp WHERE deptno=20 OR job='MANAGER';
実行すると図3のように、DEPTNO(部門)が20である全社員と、JOB(職種)がMANAGERである全社員の両方が結果として返ってきます。
Copyright © ITmedia, Inc. All Rights Reserved.