選択クエリの第一歩

 「クエリとは」の節でも触れたように、クエリにもいろいろな機能をもったクエリがありますが、通常はクエリといえば選択クエリ、つまり既存のテーブルから必要なデータを取り出し表示するクエリを指します。
 ここでは、この選択クエリにより必要なデータを取り出す単純な例を見てみます。

データの抽出の例

 基本的な例として、次のような単一のテーブルから必要なデータを取り出すものとします。

会員番号氏名出身地生年月日知恵素早さ
1斉藤 慶一東京都2001/04/0615119
2萩本 直弥滋賀県2002/06/251599
3板野 圭子新潟県2000/12/01121416
4堂本 加奈新潟県2003/05/1891112
5佐野 浩平群馬県2001/11/0591612
6井上 春香東京都2000/11/1991513

特定の列を抽出する例

 イメージとして、次のような一部の列(色をつけた列)だけを取り出すという例です。

会員番号氏名出身地生年月日知恵素早さ
1斉藤 慶一東京都2001/04/0615119
2萩本 直弥滋賀県2002/06/251599
3板野 圭子新潟県2000/12/01121416
4堂本 加奈新潟県2003/05/1891112
5佐野 浩平群馬県2001/11/0591612
6井上 春香東京都2000/11/1991513

 抽出した結果、つまりクエリはこのようになるはずです。

会員番号氏名生年月日知恵
1斉藤 慶一2001/04/0611
2萩本 直弥2002/06/259
3板野 圭子2000/12/0114
4堂本 加奈2003/05/1811
5佐野 浩平2001/11/0516
6井上 春香2000/11/1915


f:id:accs2014:20160824230141p:plain:right:w400

 ではやってみましょう。
 まず、実際に「会員」テーブルを作り、名前を付けて保存します。


f:id:accs2014:20160824230142p:plain:right:w300

 そしてウインドウ上部の「作成」タブを選択したのち「クエリデザイン」を選択します。


f:id:accs2014:20160824230143p:plain:right:w300

 デザインビューと呼ばれる画面が現れます。各種の設定を行う画面です。
 まず、クエリのデータソースとしてどのテーブルを加えるかを聞いてきます。
 「会員」テーブルを選択した状態で、下の方にある(画像に入りきらず映ってませんが)「追加」をクリックし、「閉じる」をクリックします。


f:id:accs2014:20160824230144p:plain:right:w400

 「会員」テーブルの略図が表示されます。テーブル名と列名だけに簡略化された形で表示されます。
 列名が一部しか見えないときは下部をドラッグすれば表示を広げることができます。


f:id:accs2014:20160824230145p:plain:right:w400

 必要とする列(会員番号,氏名,生年月日,知恵)だけを選択して表示させる設定に移ります。
 ウインドウの下部に「フィールド」という欄があり、表示させようとする列をここで選択することができます。ここをクリックするとテーブルに含まれている列名が並んで表示されますので、まずは「会員番号」を選択します。


f:id:accs2014:20160824230146p:plain:right:w400

 右の列に移り「氏名」を選択し、さらに「生年月日」、「知恵」と選択していきます。 


f:id:accs2014:20160826121504p:plain:right:w400

 さて、ここで「会員番号」列の下段にある「並べ替え」欄を「昇順」に設定します。これによりクエリのデータは会員番号順で表示されます。
 並べ替えを指定しない場合、テーブルと同じ順番で並ぶとは限りませんので、クエリに限らずどのような順番で表示させるべきなのかを考え、常に適切な並べ替えを設定するようにしてください。


f:id:accs2014:20160826122532p:plain:right:w400

 以上で準備は完了です。ウインドウ上部左端の「表示」のアイコンをクリックします(文字部分をクリックするとさらにメニューが出ますが「データシートビュー」を選択してください)。


f:id:accs2014:20160824230148p:plain:right:w400

 想定したとおりのデータが表示されました。


条件を満たす行を抽出する例

 次のような一部の行(色つきの行)だけを抽出するという例です。
 一見、列を取り出すのと質的な差はないように思えます。しかし、列はその名前だけで特定できる一方、行には名前もありませんし行番号もありませんので、行を特定する方法は「生年月日が2002/01/01以降の行」とか「力が10以上の行」といったように、データの内容そのもののに条件を課すしかありません。
 なお、たまたま「会員番号」が行番号のようにも見えますが、これも利用者自らが設定した列と値であり、もし別の列に基づきソートしてしまえば番号の並びもバラバラになります。よってExcelの行番号のようには機能しません。
 また、以下の例では「知恵が11以下」という条件を満たす行を抽出することとしています。

会員番号氏名出身地生年月日知恵素早さ
1斉藤 慶一東京都2001/04/0615119
2萩本 直弥滋賀県2002/06/251599
3板野 圭子新潟県2000/12/01121416
4堂本 加奈新潟県2003/05/1891112
5佐野 浩平群馬県2001/11/0591612
6井上 春香東京都2000/11/1991513

 抽出したクエリはこのようになるはずです。

会員番号氏名出身地生年月日知恵素早さ
1斉藤 慶一東京都2001/04/0615119
2萩本 直弥滋賀県2002/06/251599
4堂本 加奈新潟県2003/05/1891112


f:id:accs2014:20160826115308p:plain:right:w400

 実際にやってみましょう。
 上記の例と同じようにクエリのデザインビューを開き、「会員」テーブルを置いた状態にします。


f:id:accs2014:20160826115309p:plain:right:w400

 なお、1つ前の例(特定の列を抽出する例)から引き続き設定する場合は、左上の「表示」のアイコンをクリックすればデザインビューに戻ります。


f:id:accs2014:20160826124835p:plain:right:w400

 「フィールド」欄により、すべての列を表示させるように設定し、並べ替えを設定します。
 そして「知恵が11以下」という条件の指定については、「知恵」列のところの下の方にある「抽出条件」欄に「<=11」と記入します。


f:id:accs2014:20160826124836p:plain:right:w300

 ちょっと見づらいと思いますので当該部分を拡大します。
 なお「<=11」(11以下)と「<11」(11未満)の区別に気を付けてください。
 設定は以上で完了です。


f:id:accs2014:20160826124837p:plain:right:w400

 そして再びデータシートビューに戻ります。
 想定したとおりのデータが得られています。


条件を満たす行の、特定の列を抽出する例

 上記の2つの例の組み合わせです。
 具体的には「知恵」が11以下の行に絞って取り出すものの、「会員番号」「氏名」「生年月日」「知恵」の各列だけを取り出すこととします。
 このとき、取り出される部分は下記のようになります(濃い色の部分)。

会員番号氏名出身地生年月日知恵素早さ
1斉藤 慶一東京都2001/04/0615119
2萩本 直弥滋賀県2002/06/251599
3板野 圭子新潟県2000/12/01121416
4堂本 加奈新潟県2003/05/1891112
5佐野 浩平群馬県2001/11/0591612
6井上 春香東京都2000/11/1991513

 クエリは次のようになるはずです。

会員番号氏名生年月日知恵
1斉藤 慶一2001/04/0611
2萩本 直弥2002/06/259
4堂本 加奈2003/05/1811


f:id:accs2014:20160827112405p:plain:right:w400

 デザインビューでの設定です。
 設定としては1つ上の例(条件を満たす行を抽出する)とほとんど同じで、むしろ表示する列が少ないだけ簡単です。
 会員番号、氏名、生年月日、知恵の4列を表示することとし、会員番号の並べ替え欄を「昇順」とし、知恵の抽出条件を「<=11」とすれば完了です。


f:id:accs2014:20160827112406p:plain:right:w300

 再びデータシートビューです。
 想定したとおりのデータが得られています。