access_クエリデザイナで作成したクエリの_作成されるSQL文の種類

ms accessにおいて クエリデザイナーからクエリを作成すると、

そのクエリに追加したテーブルなどをもとにして、
同時にSQL文も作成されるそうですが、

そのSQL文というのは、たいていの場合はSELECT文になると思うのですが、
SELECT文以外も作成されるケースはあるのでしょうか?

    ↓

はい、
Microsoft Accessのクエリデザイナーを使ってクエリを作成する場合、
**SELECT文以外のSQL文が作成されるケース**もあります。  

### **SELECT文以外が作成されるケース**

Accessでは、以下のようなアクションクエリ
(データを変更するクエリ)をデザイナーで作成すると、
対応するSQL文も自動生成されます。

#### **1. テーブル作成クエリ(CREATE TABLE)**

- **新しいテーブルを作成する場合**
 
- **SQL文の例**

  ```sql
 
  CREATE TABLE NewTable (
      ID AUTOINCREMENT PRIMARY KEY,
      Name TEXT(50),
      Age INTEGER
  );
 
  ```
 
- **作成方法**

  - 「クエリデザイン」→「作成クエリ」を選択  
  - フィールドを設定し、保存すると`CREATE TABLE`文が作成される  

#### **2. 更新クエリ(UPDATE)**

- **既存のデータを変更する場合**  
- **SQL文の例**

  ```sql
 
  UPDATE Customers SET City = 'Osaka' WHERE ID = 1;
 
  ```
 
- **作成方法**

  - クエリデザインでテーブルを追加し、更新対象のフィールドと条件を指定
 
  - クエリの種類を「更新クエリ」に変更  


#### **3. 追加クエリ(INSERT INTO)**

- **別のテーブルにデータを追加する場合**
 
- **SQL文の例**

  ```sql
 
  INSERT INTO Orders (CustomerID, OrderDate)
  SELECT ID, Date() FROM Customers
                WHERE City = 'Tokyo';
 
  ```
- **作成方法**
  - クエリデザインでデータを取得するクエリを作成  
  - クエリの種類を「追加クエリ」に変更  

#### **4. 削除クエリ(DELETE)**

- **特定のレコードを削除する場合**
 
- **SQL文の例**

  ```sql
 
  DELETE FROM Customers WHERE Age < 18;
 
  ```
 
- **作成方法**

  - クエリデザインで条件を設定  
 
  - クエリの種類を「削除クエリ」に変更  


#### **5. テーブル削除クエリ(DROP TABLE)**

- **テーブル自体を削除する場合**(通常、VBAなどから実行)
 
- **SQL文の例**

  ```sql
 
  DROP TABLE OldTable;
 
  ```

#### **6. クエリによるマクロ実行(EXECUTE)**

- **VBAと組み合わせてクエリを実行する場合**
 
- **SQL文の例**

  ```sql
 
  EXECUTE MyQuery;
 
  ```
 
- **使用場面**

  - マクロやVBAからSQLを直接実行する場合  

### **まとめ**

クエリデザイナーで作成されるSQL文の多くは**SELECT文**ですが、  

「アクションクエリ」を作成すると
**UPDATE, INSERT INTO, DELETE, CREATE TABLE** などの
SQL文も自動生成されます。  

クエリの種類を変更すると、
Accessが適切なSQL文を作成してくれるので、
用途に応じて活用できます!


コメント