データベース - SQL 基本構文 - 条件式

 クラウディア
1. 概要
2. IN
3. IN で複数列を指定する
4. LIKE

1. 概要

 本ページでは、主に「WHERE」句で使用する、条件式の構文について、わたしのメモしておきたい内容を書き留めています。  本ページは、下記のサイトを参考にさせていただきました。
【SQL】LIKE 句

2. IN

 「SELECT」するときの基本形は

SELECT
    *
FROM
	table1
WHERE
	条件式
;
 で。  最も単純な条件式は

カラム = 値
 になります。  1つのカラムで複数の値を条件設定する場合

    c = v1
OR	c = v2
 これが多くなると大変ですし、プログラムで SQL を組む場合は、編集が難しくなります。  これを少し簡単にするのが IN で

c IN (v1, v2, v3, ・・・)
 と書くことができます。  列挙する数には上限があって、Oracle では確か、3000 まででした。

3. IN で複数列を指定する

 postgreSQL では、IN で複数列を指定することができ、

SELECT
    *
FROM
    table1
WHERE
	(c1, c2) IN ((v11 v21), (v21,  v22), ・・・)
;
 Oracle でもできるらしいですが、未確認です。  他のテーブルとの結合にも使えて

SELECT
	*
FROM
    table1
WHERE
	(t1c1, t1c2) IN (SELECT t2c1, t2c2 FROM table2 WHERE 条件式)
;
 と書くことができます。  「DB2」では、値を直接書く方法はエラーになりましたが、他のテーブルとの結合はうまくいきました。

4. LIKE

 下記の形式で、文字列の条件式を記述します。

WHERE
	文字列カラム LIKE '条件'
 「条件」の部分に通常の文字列のみであれば、「=」と同様、完全一致の選択を行うことになります。  「LIKE」の機能は、ワイルドカードを使って、文字列の部分一致の選択ができることにあります。  ワイルドカードは、下記のように使います。
ワイルドカード   意味    備考 
% 0 文字以上の任意の文字列
_ 任意の 1 文字

ハイスピードプラン