「クエリとは」の節でも触れたように、クエリにもいろいろな機能をもったクエリがありますが、通常はクエリといえば選択クエリ、つまり既存のテーブルから必要なデータを取り出し表示するクエリを指します。
ここでは、この選択クエリにより必要なデータを取り出す単純な例を見てみます。
データの抽出の例
基本的な例として、次のような単一のテーブルから必要なデータを取り出すものとします。
会員番号 | 氏名 | 出身地 | 生年月日 | 力 | 知恵 | 素早さ |
---|---|---|---|---|---|---|
1 | 斉藤 慶一 | 東京都 | 2001/04/06 | 15 | 11 | 9 |
2 | 萩本 直弥 | 滋賀県 | 2002/06/25 | 15 | 9 | 9 |
3 | 板野 圭子 | 新潟県 | 2000/12/01 | 12 | 14 | 16 |
4 | 堂本 加奈 | 新潟県 | 2003/05/18 | 9 | 11 | 12 |
5 | 佐野 浩平 | 群馬県 | 2001/11/05 | 9 | 16 | 12 |
6 | 井上 春香 | 東京都 | 2000/11/19 | 9 | 15 | 13 |
特定の列を抽出する例
イメージとして、次のような一部の列(色をつけた列)だけを取り出すという例です。
会員番号 | 氏名 | 出身地 | 生年月日 | 力 | 知恵 | 素早さ |
---|---|---|---|---|---|---|
1 | 斉藤 慶一 | 東京都 | 2001/04/06 | 15 | 11 | 9 |
2 | 萩本 直弥 | 滋賀県 | 2002/06/25 | 15 | 9 | 9 |
3 | 板野 圭子 | 新潟県 | 2000/12/01 | 12 | 14 | 16 |
4 | 堂本 加奈 | 新潟県 | 2003/05/18 | 9 | 11 | 12 |
5 | 佐野 浩平 | 群馬県 | 2001/11/05 | 9 | 16 | 12 |
6 | 井上 春香 | 東京都 | 2000/11/19 | 9 | 15 | 13 |
抽出した結果、つまりクエリはこのようになるはずです。
会員番号 | 氏名 | 生年月日 | 知恵 |
---|---|---|---|
1 | 斉藤 慶一 | 2001/04/06 | 11 |
2 | 萩本 直弥 | 2002/06/25 | 9 |
3 | 板野 圭子 | 2000/12/01 | 14 |
4 | 堂本 加奈 | 2003/05/18 | 11 |
5 | 佐野 浩平 | 2001/11/05 | 16 |
6 | 井上 春香 | 2000/11/19 | 15 |
ではやってみましょう。
まず、実際に「会員」テーブルを作り、名前を付けて保存します。
そしてウインドウ上部の「作成」タブを選択したのち「クエリデザイン」を選択します。
デザインビューと呼ばれる画面が現れます。各種の設定を行う画面です。
まず、クエリのデータソースとしてどのテーブルを加えるかを聞いてきます。
「会員」テーブルを選択した状態で、下の方にある(画像に入りきらず映ってませんが)「追加」をクリックし、「閉じる」をクリックします。
「会員」テーブルの略図が表示されます。テーブル名と列名だけに簡略化された形で表示されます。
列名が一部しか見えないときは下部をドラッグすれば表示を広げることができます。
必要とする列(会員番号,氏名,生年月日,知恵)だけを選択して表示させる設定に移ります。
ウインドウの下部に「フィールド」という欄があり、表示させようとする列をここで選択することができます。ここをクリックするとテーブルに含まれている列名が並んで表示されますので、まずは「会員番号」を選択します。
右の列に移り「氏名」を選択し、さらに「生年月日」、「知恵」と選択していきます。
さて、ここで「会員番号」列の下段にある「並べ替え」欄を「昇順」に設定します。これによりクエリのデータは会員番号順で表示されます。
並べ替えを指定しない場合、テーブルと同じ順番で並ぶとは限りませんので、クエリに限らずどのような順番で表示させるべきなのかを考え、常に適切な並べ替えを設定するようにしてください。
以上で準備は完了です。ウインドウ上部左端の「表示」のアイコンをクリックします(文字部分をクリックするとさらにメニューが出ますが「データシートビュー」を選択してください)。
想定したとおりのデータが表示されました。
条件を満たす行を抽出する例
次のような一部の行(色つきの行)だけを抽出するという例です。
一見、列を取り出すのと質的な差はないように思えます。しかし、列はその名前だけで特定できる一方、行には名前もありませんし行番号もありませんので、行を特定する方法は「生年月日が2002/01/01以降の行」とか「力が10以上の行」といったように、データの内容そのもののに条件を課すしかありません。
なお、たまたま「会員番号」が行番号のようにも見えますが、これも利用者自らが設定した列と値であり、もし別の列に基づきソートしてしまえば番号の並びもバラバラになります。よってExcelの行番号のようには機能しません。
また、以下の例では「知恵が11以下」という条件を満たす行を抽出することとしています。
会員番号 | 氏名 | 出身地 | 生年月日 | 力 | 知恵 | 素早さ |
---|---|---|---|---|---|---|
1 | 斉藤 慶一 | 東京都 | 2001/04/06 | 15 | 11 | 9 |
2 | 萩本 直弥 | 滋賀県 | 2002/06/25 | 15 | 9 | 9 |
3 | 板野 圭子 | 新潟県 | 2000/12/01 | 12 | 14 | 16 |
4 | 堂本 加奈 | 新潟県 | 2003/05/18 | 9 | 11 | 12 |
5 | 佐野 浩平 | 群馬県 | 2001/11/05 | 9 | 16 | 12 |
6 | 井上 春香 | 東京都 | 2000/11/19 | 9 | 15 | 13 |
抽出したクエリはこのようになるはずです。
会員番号 | 氏名 | 出身地 | 生年月日 | 力 | 知恵 | 素早さ |
---|---|---|---|---|---|---|
1 | 斉藤 慶一 | 東京都 | 2001/04/06 | 15 | 11 | 9 |
2 | 萩本 直弥 | 滋賀県 | 2002/06/25 | 15 | 9 | 9 |
4 | 堂本 加奈 | 新潟県 | 2003/05/18 | 9 | 11 | 12 |
実際にやってみましょう。
上記の例と同じようにクエリのデザインビューを開き、「会員」テーブルを置いた状態にします。
なお、1つ前の例(特定の列を抽出する例)から引き続き設定する場合は、左上の「表示」のアイコンをクリックすればデザインビューに戻ります。
「フィールド」欄により、すべての列を表示させるように設定し、並べ替えを設定します。
そして「知恵が11以下」という条件の指定については、「知恵」列のところの下の方にある「抽出条件」欄に「<=11」と記入します。
ちょっと見づらいと思いますので当該部分を拡大します。
なお「<=11」(11以下)と「<11」(11未満)の区別に気を付けてください。
設定は以上で完了です。
そして再びデータシートビューに戻ります。
想定したとおりのデータが得られています。
条件を満たす行の、特定の列を抽出する例
上記の2つの例の組み合わせです。
具体的には「知恵」が11以下の行に絞って取り出すものの、「会員番号」「氏名」「生年月日」「知恵」の各列だけを取り出すこととします。
このとき、取り出される部分は下記のようになります(濃い色の部分)。
会員番号 | 氏名 | 出身地 | 生年月日 | 力 | 知恵 | 素早さ |
---|---|---|---|---|---|---|
1 | 斉藤 慶一 | 東京都 | 2001/04/06 | 15 | 11 | 9 |
2 | 萩本 直弥 | 滋賀県 | 2002/06/25 | 15 | 9 | 9 |
3 | 板野 圭子 | 新潟県 | 2000/12/01 | 12 | 14 | 16 |
4 | 堂本 加奈 | 新潟県 | 2003/05/18 | 9 | 11 | 12 |
5 | 佐野 浩平 | 群馬県 | 2001/11/05 | 9 | 16 | 12 |
6 | 井上 春香 | 東京都 | 2000/11/19 | 9 | 15 | 13 |
クエリは次のようになるはずです。
会員番号 | 氏名 | 生年月日 | 知恵 |
---|---|---|---|
1 | 斉藤 慶一 | 2001/04/06 | 11 |
2 | 萩本 直弥 | 2002/06/25 | 9 |
4 | 堂本 加奈 | 2003/05/18 | 11 |
デザインビューでの設定です。
設定としては1つ上の例(条件を満たす行を抽出する)とほとんど同じで、むしろ表示する列が少ないだけ簡単です。
会員番号、氏名、生年月日、知恵の4列を表示することとし、会員番号の並べ替え欄を「昇順」とし、知恵の抽出条件を「<=11」とすれば完了です。
再びデータシートビューです。
想定したとおりのデータが得られています。