INSERT INTO ステートメント

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

テーブルに 1 つまたは複数のレコードを追加します。追加クエリとも呼ばれます。

構文

複数レコード追加クエリ:

INSERT INTO target [(field1[, field2[, ...]])] [IN externaldatabase]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression

単一レコード追加クエリ:

INSERT INTO target [(field1[, field2[, ...]])]
VALUES (value1[, value2[, ...])

INSERT INTO ステートメントには、次の指定項目があります。

引数

説明

target

レコードを追加するテーブルまたはクエリの名前。

field1field2

データを追加するフィールド名 (引数 target の後に指定する場合)。または、データを取得するフィールド名 (引数 source の後に指定する場合)。

externaldatabase

外部データベースのパス。パスの記述方法については、「IN 句」を参照してください。

source

コピー元のレコードのあるテーブルまたはクエリの名前。

tableexpression

挿入するレコードのある 1 つ以上のテーブルの名前。単一のテーブル名、保存されたクエリ名、または INNER JOIN、LEFT JOIN、あるいは RIGHT JOIN のいずれかの操作の結果としてできる複合テーブルを指定します。

value1value2

新しいレコードの特定のフィールドに挿入する値。それぞれの値は、記述順にフィールドに挿入されます。つまり、引数 value1 は新しいレコードの引数 field1 に、引数 value2 は引数 value2 に挿入されます。値と値の間はコンマで区切り、テキスト フィールドの値は単一引用符 (') で囲みます。


解説

上記のようには、単一レコード追加クエリの構文を使用してテーブルに 1 つのレコードを追加するのには、INSERT INTO ステートメントを使用できます。この例では、コードでは、名前と、レコードの各フィールドの値を指定します。各レコードに割り当てるには、値をそのフィールドの値のフィールドを指定する必要があります。各フィールドでは、既定値を指定するとしないまたはNull が存在しない列を挿入します。テーブルの最後のレコードが追加されます。

また、INSERT INTO ステートメントを使用して、別のテーブルからレコードのセットを追加することもできます。これには、上記の複数レコード追加クエリの構文で示したように SELECT...FROM 句によるクエリを使用します。この場合は、引数 target テーブルに追加するフィールドを SELECT 句で指定します。

引数 source テーブルと target テーブルには、テーブルまたはクエリを指定します。クエリを指定した場合、Microsoft Access データベース エンジンは、クエリで指定したすべてのテーブルにレコードを追加します。

INSERT INTO ステートメントは省略可能ですが、使用する場合 SELECT ステートメントよりも前に記述します。

レコードの追加先のテーブルに主キーがある場合、その主キー フィールドには必ず Null 値以外の一意な値を追加するようにしてください。この条件が満たされない場合、Microsoft Access データベース エンジンはレコードを追加しません。

オートナンバー型 (AutoNumber) フィールドのあるテーブルにレコードを追加する場合、追加したレコードに新しく番号を割り当てる場合は、クエリにオートナンバー型 (AutoNumber) フィールドを含めないでください。既にこのフィールドに割り当てられている値をそのまま使用する場合は、クエリにオートナンバー型 (AutoNumber) フィールドを含めてください。

別のデータベースにあるテーブルにレコードを追加するには、IN 句を使用します。

新しいテーブルを作成する場合は、INSERT INTO ステートメントではなく、SELECT...INTO ステートメントを使用してテーブル作成クエリを作成してください。

追加クエリを実行する前にどのレコードが追加されるかをあらかじめ確認する場合は、同じ抽出条件の選択クエリを実行してその結果を確認してください。

追加クエリを実行すると、1 つまたは複数のテーブルから他のテーブルにレコードがコピーされます。追加クエリを実行しても、レコードのコピー元のテーブルは変更されません。

別のテーブルからの既存のレコードを追加する代わりに、VALUES 句を使用して、各フィールドの値を指定した単一の新規レコードを追加することもできます。フィールド リストを省略する場合は、VALUES 句にはテーブルにあるすべてのフィールドの値を指定してください。すべてのフィールドの値を指定しないと、INSERT 操作は失敗します。VALUES 句を使用する INSERT INTO ステートメントは、追加するレコードの数だけ記述する必要があります。



注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×