データを取得する条件を設定する(WHERE句)

SELECT コマンドを使ってテーブルからデータを取得するときに WHERE 句を使用すると取得するデータに条件を設定することができます。ここでは PostgreSQL でデータを取得する条件を設定する方法について解説します。

(Last modified: )

WHERE句の使い方

SELECT コマンドを使ってデータを取得する時に、 WHERE 句を設定することで取得するデータに条件を設定できます。書式は次のとおりです。

SELECT expression [, ...]
    FROM table_name WHERE condition

WHERE 句が記述されている場合、取得するデータ毎に条件式( condition )を評価します。結果が真となった場合はデータを取得し、偽となった場合は取得しません。条件式にはカラム名と演算子や関数などを記述することができます。

例えば次のように使います。

[例] branch カラムの値が 'Tokyo' のデータを取得
SELECT * FROM uriage WHERE branch='Tokyo';

[例] address カラムの値が 'Osaka' で且つ old カラムの値が 20 以上のデータを取得
SELECT * FROM personal WHERE address='Osaka' AND old>=20;

-- --

それでは実際に試してみます。次のようなテーブルを作成しました。

create table myschema.friends(
  name varchar(10),
  old int, 
  address varchar(10)
);

WHERE句の使い方(1)

作成したテーブルに次のようなデータを格納しておきます。

insert into myschema.friends values
  ('Nakayama', 38, 'Osaka'),
  ('Sugita', 19, 'Tokyo'),
  ('Takahashi', 26, 'Chiba'),
  ('Furuta', 18, 'Osaka');

WHERE句の使い方(2)

最初に条件を設定せずにすべてのデータを取得してみます。

select * from myschema.friends;

WHERE句の使い方(3)

それでは条件を設定してみます。 old カラムが 20 よりも大きいデータだけを取得します。次のように WHERE 句を記述しました。

select * from myschema.friends
  where old > 20;

WHERE句の使い方(4)

old カラムの値が 20 よりも大きいデータだけを取得することができました。

次に address カラムの値が 'Tokyo' か ’Chiba' のデータを取得します。次のように WHERE 句を記述しました。

select * from myschema.friends
  where address = 'Tokyo' or address = 'Chiba';

WHERE句の使い方(5)

address カラムの値が 'Tokyo' か 'Chiba' のデータだけを取得することができました。

-- --

WHERE 句を使ってデータを取得する条件を設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。