PSQL Programmer's Guide (v11)

制限句 (リレーショナル インターフェイス)

制限句は、演算子と式からなる ASCII テキスト文字列です。制限句は、ビューの列の値に対する選択基準を指定し、ビューに取り込む行数を制限します。WHERE や HAVING などの句の構文では、制限句を使用しなければなりません。制限句は、以下の条件を指定できます。

制限句には、複数の条件を含めることができます。制限句には、データベース内のほかのテーブルの内容に検索基準を置いている SELECT サブクエリも含めることができます。サブクエリを含む条件には、EXISTS、NOT EXISTS、ALL、ANY および SOME キーワードまたは IN 範囲演算子を含めることができます。

SELECT、UPDATE または DELETE ステートメント内の WHERE または HAVING 句を使用して、制限句を指定できます。

1 には、制限句の例を示し、制限句の要素を図示しています。

図 1 制限句の例

制限句演算子

制限句は 3 つのタイプの演算子を使用できます。

ブール演算子

ブール演算子は、論理条件を指定します。

表 43 ブール演算子
演算子
説明
AND
AND で連結されているすべての検索条件が True であれば、制限をパスします。
OR
OR で連結された条件の少なくとも 1 つが True であれば、制限をパスします。
NOT
条件が False であれば、制限をパスします。

条件演算子

条件演算子は、関係演算子または範囲演算子とすることができます。

44 に関係演算子を示します。

表 44 関係条件演算子
演算子
説明
演算子
説明
<
より小さい
>=
大きいかまたは等しい
>
より大きい
!=
等しくない
=
等しい
<>
等しくない
<=
小さいかまたは等しい
 
 

45 に条件演算子を示します。

表 45 範囲条件演算子
演算子
説明
IN
値は指定されたリストに存在します。
NOT IN
値は指定されたリストに存在しません。
BETWEEN
値は指定された範囲内に存在します。
NOT BETWEEN
値は指定された範囲内に存在しません。
IS NULL
値は列に対して定義された NULL 値です。
IS NOT NULL
値は列に対して定義された NULL 値ではありません。
LIKE
値は指定された文字列に一致します。実際の文字に対して 2 つのワイルドカード文字を代入できます。パーセント記号(%)は、n 文字(ここで、n は 0 でもよい)の並びを表します。アンダースコア(  _  )は、単一文字を表します。
NOT LIKE
値は指定された文字列に一致しません。

IN 演算子と NOT IN 演算子を使用すると、第 2 の式は列名または定数の代わりにサブクエリとすることができます。

式の演算子

式の演算子を使用して、算術演算子または文字列演算子で計算列の式を作成できます。詳細については、関数 (リレーショナル インターフェイス)を参照してください。

制限句の例

以下の例では、制限句演算子のいくつかを実証します。

OR と 等号(=)

以下の例では、関係 EQUAL TO 演算子とブール OR 演算子を使用します。また、State 列の値が Texas または New Mexico であるすべての行を選択します。

SELECT Last_Name, First_Name, State
   FROM Person
   WHERE State = 'TX' OR State = 'NM'# 

IN

以下の例では、IN 演算子を使用します。これにより、名が Bill と Roosevelt のレコードがテーブル Person から選択されます。

SELECT * FROM Person WHERE First_name IN  
(’Roosevelt’, ’Bill’)# 

LIKE

以下の例では、LIKE 演算子を使用します。

SELECT ID, First_Name, Last_Name, Zip
   FROM Person
   WHERE Zip LIKE '787%'; 

この例では、Person テーブルから ZIP コードが "787" で始まるレコードを取得します。


サブクエリ (リレーショナル インターフェイス)

関数 (リレーショナル インターフェイス)