クエリとSQLの関係

SQLとは

SQLは、「Structured English Query Language」(構造化英文問い合わせ言語)として1970年代にIBM社で開発されました。その後、ISOやJISによって規格化されたことにより普及が進み、現在ではリレーショナルデータベースの事実上の標準言語となっています。

Accessの優れた操作性により、通常の利用程度なら、SQLを理解していなくても十分使いこなせます。しかし、ほかのデータベースに対して直接問い合わせをしたり、たったひとつの命令で、たくさんのデータに一度に更新をかけたり、ある条件でデータを削除したり、複雑な条件に該当するデータを抽出したり集計したりすることができるのです。
SQLには、大まかに次のような機能があります。

  1. データを格納するテーブルなどデータベースの構造を定義します。
  2. 追加・更新・削除など、データベースの操作を行います。
  3. データベースの制御を行います。

AccessでSQLを実行するには 

次のような方法があります。

  1. フォームやクエリのレコードソース、コンボボックスなどの集合値として実行する
  2. VABからアクションとして実行する

クエリとSQL

クエリには「SQLビュー」という表示モードがあります。SQLビューでは、クエリの処理内容がSQLステートメントで記述されています。 

選択クエリ 

テーブルのデータを基に、特定のフィールドのみを表示したり抽出したりします。

《書式》

SELECT フィールド名
FROM テーブル名
WHERE 条件式

フィールド名は「テーブル名.フィールド名」の形式で指定します。複数のフィールドを指定する場合はカンマで区切ります。
すべてのフィールドを指定する場合はアスタリスク(*)を入力します。
テーブル名は、クエリの基になるテーブル(またはクエリ)名を指定します。
条件式は、「フィールド名 演算子 条件値」の形式で指定します。条件値が文字列の場合はダブルコーテーションで囲みます。
ひとつの条件式が長い場合は、任意の場所で区切れますが、クエリに指定した条件に対しては、Accessが自動的に区切ります。

《使用例》 

“埼玉県”で抽出した場合、SQLビューには次のように表示されます。

SELECT T得意先マスタ.顧客名, T得意先マスタ.都道府県
FROM T得意先マスタ
WHERE (((T得意先マスタ.都道府県)="埼玉県"));

更新クエリ 

複数または1つの値を一括して更新します。

《書式》

UPDATE テーブル名
SET 更新する値
WHERE 条件式

《使用例》

下記例では、都道府県フィールドが“東京”のレコードを抽出し、“東京都”に置換します。

UPDATE T得意先マスタ
SET T得意先マスタ.都道府県 = "東京都"
WHERE (((T得意先マスタ.都道府県)="東京"));

削除クエリ

条件を満たすレコードをテーブルから削除できます。 

《書式》

DELETE FROM テーブル名
WHERE 条件式

《使用例》

下記例では、顧客区分が“D”のレコードを削除します。

DELETE T得意先マスタ.顧客名, T得意先マスタ.顧客区分
FROM T得意先マスタ
WHERE (((T得意先マスタ.顧客区分)="D"));