AccessクエリとSQLの関係 抽出条件

さて、Accessクエリの続きである。
前回は、並び替えをやった、今回は、ひとつ飛ばして、抽出条件をやってみる。
多分、クエリで一番お世話になる機能である。
抽出条件
さて、抽出条件の入力欄では、ドロップダウンは表示されない。これは、なんでも入力できることを意味する。抽出条件という言葉の意味通り、抽出するための条件を書き込む欄になる。
まずは、簡単な抽出からやってみることにする。
単純一致
抽出という処理は、レコードを抽出する作業になる。抽出条件は、抽出したいレコードの条件。
抽出条件に単に値を入力すると、その値と一致するレコードが抽出される。
難しくはない。
fooテーブルの全レコードが以下のように存在していたとする。
b列の抽出条件に2を書き込んでクエリを実行すると
Access抽出条件を設定2017-05-29 (8).png
b列が2であるレコードだけが抽出された。
2を1に変更すれば、1であるレコードが抽出されるはず。
SQLとの対比 WHERE
では、これをSQLビューで表示させてみよう。
Access抽出条件を設定SQL2017-05-29 (8).png
やたら括弧が付いて読みにくいが、WHERE(ホエア)が追加になっていることがわかる。括弧を取り除いてみると、以下のようになっている。
WHERE foo.b = 2
SELECT命令のWHERE句では、レコードを抽出するための条件式を書くところなのである。テーブルfooのb列が2と一致するレコードだけを抽出してきなさい、という命令になっている。
「foo.b = 2」は、式である。foo.bがテーブルfooのb列であることを意味している。2はそのまま数値の2。=が演算子で「等しい」かどうかを計算してくれるもの。デザインビューの入力欄には=は入力していないが、計算方法を入力しなかった場合、デフォルトで=が演算子として採用される。
ここまでのまとめ
WHERE
 抽出条件を指定するとSELECT命令に追加される
foo.b = 2
 WHEREに続けて、レコードの抽出条件式を指定する
=
 等しいかどうかを計算する演算子
比較演算
単純にb列の値が2と一致するレコードだけを抽出できた。演算子を指定することで、計算方法を変更することができる。比較演算子を使うことで、指定した値よりも大きいものだけ、といった抽出が可能になる。比較演算子には以下のものがある。
 =  等しい
 >  大きい
 <  小さい
 >= 以上
 <= 以下
 <> 等しくない
このブログは、HTMLで書いているので、記号を全角文字で書いている。実際のクエリには半角で演算子を書かないと演算子とはみなされないので注意!
b列が2以上であるレコードを抽出してみよう。
Access抽出条件2以上2017-05-29 (11).png
ちゃんとできました。
今回はここまで。
詳しくは、SQLポケリのWHERE句や比較演算子のところを参照して欲しいのだ。

[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

投稿者プロフィール

asai
asai