はじめに
WHERE
句で記述する際に,条件式の設定で使用するコマンドの備忘録.
WHERE句
SELECT
句やUPDATE
句などを使用する際,WHERE
句を使うことで条件に一致したデータだけを取得,更新することができます.
WHERE基本構文
SELECT カラム名 , ... FROM テーブル名 WHERE 条件式;
UPDATE テーブル名 SET カラム名 = 値 WHERE 条件式;
条件式で使うコマンドを紹介していきます.
AND,OR
複数の条件式を設定する際に使用します.
SELECT カラム名 , ... FROM テーブル名
WHERE 条件式1
OR 条件式2
AND 条件式3;
BETWEEN
カラムの値が値1から値2の間に含まれているかどうか(値1 <= カラム値 <= 値2)の条件式を記述できます.
SELECT カラム名 , ... FROM テーブル名 WHERE カラム BETWEEN 値1 AND 値2;
指定した日付区間のデータ抽出などで使用できそうですね.
LIKE
パターンマッチングを使って値の比較を行うことができます.
SELECT カラム名 , ... FROM テーブル名 WHERE カラム LIKE パターン;
パターンは特殊な文字であるパーセント(%)とアンダーバー(_)を文字列と組み合わせた値として記述します.
% : 任意の0文字以上の文字列
_ : 任意の1文字
WHERE カラム LIKE 'A%B'
の場合,"A"から始まり"B"で終わる全ての文字列にマッチします.
例)・AB ・AaB ・AaaB ・AabaB
パターンを'%特定の文字列%'
とすると,特定の文字列が含まれているか判別できます.
GLOB
LIKE
句と同様に,パターンマッチングを使って値の比較を行うことができます.
SELECT カラム名 , ... FROM テーブル名 WHERE カラム GLOB パターン;
パターンに使用する特殊文字がLIKE
句と異なります.
* : 任意の0文字以上の文字列
? : 任意の1文字
[abc] : a or b or cのいずれかに一致
[a-d] : aからdまでにいずれかに一致
IN
カラムの値が複数の値のいずれかと一致するかどうかという条件式を記述できます.
SELECT カラム名 , ... FROM テーブル名 WHERE カラム IN(値1, 値2, ...);
値をリストのように記述しておき,このリストの中のいずれかの値に一致するかどうかを判別します.
これは比較演算子と論理演算子を使うと下記のようになります.
SELECT カラム名 , ... FROM テーブル名 WHERE カラム = 値1 OR カラム = 値2 OR ...;