取得するデータの条件を設定(WHERE句)
SELECT 文でデータを取得する時に条件を指定しなければテーブルに含まれる全てのデータを取得しますが、 WHERE 句を使うことで条件に一致したデータだけを取得することができます。ここでは SQLite で WHERE 句を使って取得するデータの条件を設定する方法について解説します。
(Last modified: )
WHERE句を使った条件の設定
WHERE 句を利用することで取得するデータの条件を設定することができます。書式は次の通りです。
SELECT カラム名 , ... FROM テーブル名 WHERE 条件式;
WHERE 句の後にどのようなデータを取得するのか条件式を記述します。どのような記述方法が可能なのかは後で見ていきますので、まずは簡単な例で試てみます。
----
それでは実際に試してみます。次のようなテーブルを作成しました。
create table user(name text, old integer, address text);
INSERT 文を使ってテーブルにデータをいくつか格納しておきます。
insert into user values('Suzuki', 24, 'Osaka');
insert into user values('Honda', 18, 'Tokyo');
insert into user values('Yamada', 32, 'Osaka');
insert into user values('Endou', 35, 'Tokyo');
insert into user values('Kudou', 19, 'Nagoya');
insert into user values('Yoshida', 27, 'Osaka');
insert into user values('Hosoe', 26, 'Tokyo');
取得するデータの条件を指定しないでデータを取得した場合は次のようにテーブルに含まれるすべてのデータを取得します。
select * from user;
それでは条件式の簡単な例として特定のカラムに格納されている値が指定した値と一致するデータを取得してみます。次の例では address カラムの値が 'Tokyo' のデータを取得しています。
select * from user where address = 'Tokyo';
同じように今度は address カラムの値が 'Osaka' のデータを取得しています。
select * from user where address = 'Osaka';
今回は条件式として特定のカラムの値を指定して一致したデータを取得するというものでした。他にも比較演算子を使った条件式や論理演算子を使った条件式などを記述することができますのでこのあとでみていきます。
比較演算子を使った条件式
WHERE 句の中では次のような比較演算子が利用できます。
a = b aとbは等しい a <> b aとbは等しくない a > b aはbより大きい a >= b aはb以上 a < b aはbより小さい a <= b aはb以下
等しいと等しくないについては次の記述も利用できます。
a == b aとbは等しい a != b aとbは等しくない
それでは比較演算子を使ったサンプルとして old カラムの値が 20 以上のデータを取得してみます。
select * from user where old >= 20;
今度は address カラムの値が 'Osaka' ではないデータを取得してみます。
select * from user where address <> 'Osaka';
どちらも条件式に記述した条件に一致したデータだけを取得することができました。
論理演算子を使った条件式
より複雑な条件式を記述するために論理演算子として AND 、 OR 、 NOT を利用することもできます。
where 条件式1 and 条件式2 where 条件式1 or 条件式2 where not 条件式
AND を使用すると条件式1と条件式2のどちらもみたす場合のデータを取得します。 OR を使用すると条件式1と条件式2の少なくとも1つの条件式を満たすデータを取得します。 NOT は否定です。条件式と一致するもの以外を取得します。
それでは論理演算子を使ったサンプルとして old カラムの値が 20 より大きく、且つ address カラムの値が 'Tokyo' のデータを取得します。
select * from user where old > 20 and address = 'Tokyo';
条件に一致するデータだけが取得されました。
-- --
WHERE 句を使って取得するデータの条件を設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。