PR

わかる!Access学習9 データ処理で便利な選択クエリ

Access学習

当ホームページでは、これまでに適切に設計されたデータベースにおけるデータは複数のテーブルに正規化された状態で存在することを紹介してきました。

データベースに保存されているデータを使用する場合、あるテーブルに保存されている全てのデータを使用する必要はありません。

例えば、連絡先情報が含まれるテーブルの内、特定のレコードを1つ検索する場合や、電話番号の情報だけを見る場合、顧客情報と受注情報を組み合わせて情報を閲覧するといった複数テーブルからデータを取得する場合もあります。

このような処理を行うためにクエリ(query)では、テーブルから情報を取得し、ユーザーが用いたい情報に組み立て直すことができます。クエリの汎用性は高く、データベースに保存されている情報の閲覧に加え、更新、削除及び追加といった様々な処理をすることもできます。

今回は、「情報の閲覧」のために最も良く利用される「選択クエリ」について見ていきましょう。

スポンサーリンク

関係演算の考え方

関係演算として「選択」、「射影」及び「結合」について理解しておくことが大切なため、図1で図示をして説明をします。

図1 関係演算の概念図

このように関係演算の概念を図で示すことができますが、すなわち、

① 選択: 行の抽出
② 射影: 指定した列を抽出
③ 結合: 複数の表を結合して1つの表にする

というデータ操作を行うことであり、「選択」、「射影」及び「結合」といった1つまたは複数のデータソースから特定のデータを抽出するときに、選択クエリを使用します。選択クエリでは、データソースとしてテーブルとその他の選択クエリを使用できます。

選択クエリは、テーブルに格納されているデータを用いて閲覧ができるようにするため、新たなテーブルが作成されるわけではありません。

以上を踏まえて、簡単な選択クエリの作成方法を見ていきましょう。

サンプルテーブルについて

表1のようなテーブルがあるとき、それぞれのテーブルを結合し、さらに条件に応じてレコード(行)を抽出する「選択」とフィールド(列)を抽出する「射影」の方法を見ていきましょう。

表1 「T_従業員」テーブル(上)及び「T_部署」テーブル
氏名 部署コード 年齢 電話番号 出身地
山田 太郎 A111 35 080-1234-5678 東京都
佐藤 花子 A101 16 090-9876-5432 北海道
鈴木 次郎 B102 40 080-1928-3764 愛知県
部署コード 部署名
A111 営業部
A101 経理部
B102 製造部

選択クエリの作成方法

選択クエリを作成するためには、図2に示すように「作成」タブの「クエリデザイン」を選択します。

図2 クエリデザインの選択

続いて、「テーブルの表示」画面で「T_従業員」と「T_部署」テーブルを選択することで、図3のようにクエリウィザード画面に対象テーブルが表示されます。

図3 クエリデザインにおけるテーブルの追加

今回の例では、「T_従業員」テーブルと「T_部署」テーブルは「部署コード」フィールドをキーとして結合をすることができます。

そこで、「T_従業員」テーブルの「部署コード」フィールドを「T_部署」テーブルの「部署コード」フィールドにマウスでドラッグ&ドロップすると、図4のように結合処理ができます。続いて、「フィールド」項目に「T_従業員」テーブルの「氏名」フィールドと「T_部署」テーブルの「部署名」フィールドを追加します。

図4 クエリデザインでの結合設定

図4で示す設定条件の考え方は、図1で示した考え方に照らすと次のとおりです。

・結合: 「部署コード」フィールドで「T_従業員」と「T_部署」テーブルを紐づけた。
・射影: 「氏名」と「部署名」フィールドを閲覧できるようにした。

さて、以上で選択クエリにより閲覧したい情報の設定ができたため、どのように情報が表示されるかを確認します。

選択クエリによるデータの閲覧方法

図5に示すように、「クエリデザイン」タブ、「表示」、「データシートビュー」の順にクリックします。

図5 データシートビューの開き方

これによりデータシートビューに切り替わり図6のような結果が得られます。

図6 クエリのデータシートビュー

このように、「T_従業員」と「T_部署」テーブルの各レコードが「部署コード」で紐づけられた後、「氏名」と「部署名」フィールドの情報が表示されていることが分かります。

ここまでで示してきた内容は、図1で示す関係演算の内の「射影」と「結合」ですが、残りの「選択」についても確認していきましょう。

選択クエリによる選択演算

図7に示すように、デザインビュー画面で「T_部署」テーブルの「部署コード」フィールドを追加し「抽出条件」項目に「”A101”」と入力します。

図7 クエリによる選択演算の設定方法

この状態で、改めてデータシートビューを開いてみると、図8に示す結果が得られます。

図8 クエリによる選択演算の結果

上の例では、単純な抽出条件としましたが、例えば30歳以上の人のレコードを抽出したい場合は、「年齢」フィールドの「抽出」項目に「>=30」と入力することで、これを実現することができます。

選択クエリを活用すると、様々な条件で容易にデータを取得することができます。特に、必要に応じたレコードの取得の際に選択演算は力を発揮してくれます。

抽出条件の例として以下のものを紹介しますが、その他にも様々な条件設定をすることができますので、必要に応じて学んでいくと良いのではないでしょうか。

・数字の抽出条件: 等号(=)、不等号(>=、<=、>、<)、Between A And B
・あいまい抽出: Like “*A*”・・・Aという文字列を含むデータ
・日付の抽出条件: Between #2022/04/01# And #2023/03/31#・・・2022年度の抽出

まとめ

今回は、Accessにおける「選択クエリ」の基礎的な使用方法について関係演算の考え方を交えて紹介をしました。

選択クエリを自由自在に使用できるようになると、データ処理の速度が格段に上がりますので、是非本記事を参考に、選択クエリの作成方法をご理解いただければと思います。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。

コメント

タイトルとURLをコピーしました