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文を作成してくれるので、
用途に応じて活用できます!
コメント
コメントを投稿