取得するデータの条件を設定
SELECT文でデータを取得する時に条件を指定しなければテーブルに含まれる全てのデータを取得しますが、条件を指定し条件に一致するデータだけを取得することもできます。ここでは取得するデータの条件を設定する方法について解説します。
1.WHERE句の記述方法
2.比較演算子を使った条件式
3.論理演算子を使った条件式
取得するデータの条件を設定する場合の書式は次の通りです。
SELECT カラム名 , ... FROM テーブル名 WHERE 条件式;
WHERE句の後にどのようなデータを取得するのか条件式を記述します。どのような記述方法が可能なのかは後で見ていきますので、まずは簡単な例で試てみます。
次のようなテーブルを作成しました。
create table user(name text, old integer, address text);
いくつかのデータが格納されています。取得するデータの条件を指定しないでデータを取得した場合は次のようになります。
select * from user;
それでは条件式の簡単な例として特定のカラムに格納されている値が指定した値と一致するデータを取得してみます。次の例では「address」カラムの値が「'Tokyo'」のデータを取得しています。
select * from user where address = 'Tokyo';
条件に一致する4つのデータが取得できました。今回は値が等しいかどうかの条件式を使用しましたが、他にどのような条件式が記述できるのかについてこの後確認していきます。
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は等しくない
条件式を記述する時には左側にカラム名、右側に比較する値、を記述する方法がよく行われます。
where カラム = 値 where カラム > 値
WHERE句がSELECT文に記載されている場合、テーブルに含まれているデータを最初から順に条件式に当てはめていき、条件式が成り立つ場合はデータを取得し条件式が成り立たない場合はデータを取得しません。
それでは実際に試してみます。先ほどのサンプルでは「=」を使いましたので今回は「old」カラムの値が20以上のデータを取得します。
select * from user where old >= 20;
条件に一致するデータだけが取得されました。
より複雑な条件式を記述するために論理演算子を利用することもできます。
C1 AND C2 C1とC2が共にTRURならTRUE C1 OR C2 C1かC2の少なくとも1つがTRUEならTRUE NOT C1 C1がTRUEならFALSE、C1がFALSEならTRUE
比較演算子を使った条件式を組み合わせた条件式を作成する場合に論理演算子を使います。
where カラム1 < 値1 and カラム1 > 値2 where カラム1 = 値1 or カラム2 = 値2 where not カラム1 = 値1
それでは実際に試してみます。今回は「old」カラムの値が23より大きく、且つ「address」カラムの値が「'Tokyo'」のデータを取得します。
select * from user where old > 23 and address = 'Tokyo';
条件に一致するデータだけが取得されました。
( Written by Tatsuo Ikura )