当ホームページでは、これまでに適切に設計されたデータベースにおけるデータは複数のテーブルに正規化された状態で存在することを紹介してきました。
データベースに保存されているデータを使用する場合、あるテーブルに保存されている全てのデータを使用する必要はありません。
例えば、連絡先情報が含まれるテーブルの内、特定のレコードを1つ検索する場合や、電話番号の情報だけを見る場合、顧客情報と受注情報を組み合わせて情報を閲覧するといった複数テーブルからデータを取得する場合もあります。
このような処理を行うためにクエリ(query)では、テーブルから情報を取得し、ユーザーが用いたい情報に組み立て直すことができます。クエリの汎用性は高く、データベースに保存されている情報の閲覧に加え、更新、削除及び追加といった様々な処理をすることもできます。
今回は、「情報の閲覧」のために最も良く利用される「選択クエリ」について見ていきましょう。
関係演算の考え方
関係演算として「選択」、「射影」及び「結合」について理解しておくことが大切なため、図1で図示をして説明をします。
このように関係演算の概念を図で示すことができますが、すなわち、
① 選択: 行の抽出
② 射影: 指定した列を抽出
③ 結合: 複数の表を結合して1つの表にする
というデータ操作を行うことであり、「選択」、「射影」及び「結合」といった1つまたは複数のデータソースから特定のデータを抽出するときに、選択クエリを使用します。選択クエリでは、データソースとしてテーブルとその他の選択クエリを使用できます。
選択クエリは、テーブルに格納されているデータを用いて閲覧ができるようにするため、新たなテーブルが作成されるわけではありません。
以上を踏まえて、簡単な選択クエリの作成方法を見ていきましょう。
サンプルテーブルについて
表1のようなテーブルがあるとき、それぞれのテーブルを結合し、さらに条件に応じてレコード(行)を抽出する「選択」とフィールド(列)を抽出する「射影」の方法を見ていきましょう。
氏名 | 部署コード | 年齢 | 電話番号 | 出身地 |
山田 太郎 | A111 | 35 | 080-1234-5678 | 東京都 |
佐藤 花子 | A101 | 16 | 090-9876-5432 | 北海道 |
鈴木 次郎 | B102 | 40 | 080-1928-3764 | 愛知県 |
部署コード | 部署名 |
A111 | 営業部 |
A101 | 経理部 |
B102 | 製造部 |
選択クエリの作成方法
選択クエリを作成するためには、図2に示すように「作成」タブの「クエリデザイン」を選択します。
続いて、「テーブルの表示」画面で「T_従業員」と「T_部署」テーブルを選択することで、図3のようにクエリウィザード画面に対象テーブルが表示されます。
今回の例では、「T_従業員」テーブルと「T_部署」テーブルは「部署コード」フィールドをキーとして結合をすることができます。
そこで、「T_従業員」テーブルの「部署コード」フィールドを「T_部署」テーブルの「部署コード」フィールドにマウスでドラッグ&ドロップすると、図4のように結合処理ができます。続いて、「フィールド」項目に「T_従業員」テーブルの「氏名」フィールドと「T_部署」テーブルの「部署名」フィールドを追加します。
図4で示す設定条件の考え方は、図1で示した考え方に照らすと次のとおりです。
・結合: 「部署コード」フィールドで「T_従業員」と「T_部署」テーブルを紐づけた。
・射影: 「氏名」と「部署名」フィールドを閲覧できるようにした。
さて、以上で選択クエリにより閲覧したい情報の設定ができたため、どのように情報が表示されるかを確認します。
選択クエリによるデータの閲覧方法
図5に示すように、「クエリデザイン」タブ、「表示」、「データシートビュー」の順にクリックします。
これによりデータシートビューに切り替わり図6のような結果が得られます。
このように、「T_従業員」と「T_部署」テーブルの各レコードが「部署コード」で紐づけられた後、「氏名」と「部署名」フィールドの情報が表示されていることが分かります。
ここまでで示してきた内容は、図1で示す関係演算の内の「射影」と「結合」ですが、残りの「選択」についても確認していきましょう。
選択クエリによる選択演算
図7に示すように、デザインビュー画面で「T_部署」テーブルの「部署コード」フィールドを追加し「抽出条件」項目に「”A101”」と入力します。
この状態で、改めてデータシートビューを開いてみると、図8に示す結果が得られます。
上の例では、単純な抽出条件としましたが、例えば30歳以上の人のレコードを抽出したい場合は、「年齢」フィールドの「抽出」項目に「>=30」と入力することで、これを実現することができます。
選択クエリを活用すると、様々な条件で容易にデータを取得することができます。特に、必要に応じたレコードの取得の際に選択演算は力を発揮してくれます。
抽出条件の例として以下のものを紹介しますが、その他にも様々な条件設定をすることができますので、必要に応じて学んでいくと良いのではないでしょうか。
・数字の抽出条件: 等号(=)、不等号(>=、<=、>、<)、Between A And B
・あいまい抽出: Like “*A*”・・・Aという文字列を含むデータ
・日付の抽出条件: Between #2022/04/01# And #2023/03/31#・・・2022年度の抽出
まとめ
今回は、Accessにおける「選択クエリ」の基礎的な使用方法について関係演算の考え方を交えて紹介をしました。
選択クエリを自由自在に使用できるようになると、データ処理の速度が格段に上がりますので、是非本記事を参考に、選択クエリの作成方法をご理解いただければと思います。
スポンサーリンク
コメント