OracleSQL入門-WHERE句を使ったデータの絞り込み方法

OracleSQL入門に戻る

スポンサードリンク

WHERE句を使ったデータの絞り込み方法

前回はSELECT文を使ったデータの取得方法について学びました。

しかし、SELECT文だけでは対象のデータを全て取得してしまい、必要なデータを探すのが

大変ですよね。

そんな必要なデータを絞り込んで出力したいときに使うのがWHERE句です。

WHERE句の基本構文

SELECT 列名 FROM 表名 WHERE 絞り込み条件; 

WHERE句は、基本的にFROM句の後に記述します。

使用例として、学生表の年が2年生の生徒を取得したい場合は以下の通りです。

SELECT * FROM 学生 WHERE 年 = 2;

実行してみると、年が2のデータのみ取得していることが分かります。

OracleSQL-WHERE句1

比較列のデータ型が文字列または日付の場合は、シングルクォーテーション(‘)で囲む必要が

あるので注意しましょう。

OracleSQL-WHERE句2

スポンサードリンク

比較演算子

条件の指定には「」以外にも様々な演算子を使うことができます。

以下に比較演算子の一覧を記載しますので、色々試してみましょう。

演算子 解説 使用例
比較結果が等しい場合にデータを出力します。 SELECT * FROM 学生 WHERE 年 = 2;
!=、<> 比較結果が等しくない場合にデータを出力します。 SELECT * FROM 学生 WHERE 年 <> 2;
> 対象が比較値より大きい場合データを出力します。 SELECT * FROM 学生 WHERE 年 > 2;
< 対象が比較値より小さい場合データを出力します。 SELECT * FROM 学生 WHERE 年 > 2;
>= 対象が比較値以上場合データを出力します。 SELECT * FROM 学生 WHERE 年 >= 2;
<= 対象が比較値以下場合データを出力します。 SELECT * FROM 学生 WHERE 年 >= 2;
(NOT)BETWEEN 比較値1 AND
比較値2
対象が比較値1以上、比較値2以下の場合データを出力します。
NOTを付けると比較値より小さく、比較値2より大きい場合に出力されます。
SELECT * FROM 学生 WHERE
学籍番号 BETWEEN 2 AND 4;
SELECT * FROM 学生 WHERE
学籍番号 NOT BETWEEN 2 AND 4;
(NOT) IN
(値1,値2…)
対象がINで指定された値のいずれかに等しい場合にデータを出力します。
NOTを付けると、指定された値に等しくない場合にデータが出力されます。
SELECT * FROM 学生 WHERE
学籍番号 IN(2,4);
SELECT * FROM 学生 WHERE
学籍番号 NOT IN(2,4);
IS (NOT) NULL 対象がNULLの場合データを出力します。
NOTを付けると、対象がNULLでない場合データを出力します。
SELECT * FROM 学生 WHERE
部活ID IS NULL;
SELECT * FROM 学生 WHERE
部活ID IS NOT NULL;

複数の条件を指定

絞り込みの条件は、ANDORを使うことで複数指定することができます。

SELECT * FROM 学生 WHERE 年 = 2 AND 組 = 'A';

↑の場合、年が2かつ組がAの時にデータが出力されます。

ANDは「かつ」ORは「または」と言う言葉に置き換えて使い分けるようにしましょう。

ANDとORには優先度があり、ANDが先に評価されORが後に評価されます。

SELECT * FROM 学生 WHERE 年 = 2 AND 組 = 'A' OR 組 = 'B';

↑の場合、「年が2」で「組が2」のデータか「組がB」のデータが出力されます。

算数で言う、掛けるや割るが足すや引くより先に計算するのと同じですね。

その算数と同じようにSQLもカッコで囲むことで、優先度を変えることが可能です。

SELECT * FROM 学生 WHERE 年 = 2 AND (組 = 'A' OR 組 = 'B');

↑の場合、「年が2」のデータか「組が2」または「組がB」のデータが出力されます。

最初は使い方に戸惑うかもしれませんが、自分なりに動かしてみてゆっくり学習して

いきましょう。

スポンサードリンク

シェアする

フォローする