SQL INSERT –1つ以上の行をテーブルに挿入する

概要:このチュートリアルでは、SQLINSERTステートメントを使用してデータを挿入する方法を学習します。

INSERTステートメントは、1つ以上の行をテーブルに挿入します。 INSERTステートメントはINSERT INTOステートメントと呼ばれることもあります。

SQL INSERTステートメント–1行をtable

以下は、既存のテーブルに単一の行を挿入するINSERTステートメントを示しています。

1
2

INSERT INTO table(column1、column2、 …)
VALUES(value1、value2、…);

テーブルに行を挿入するには、次のことを行う必要があります。次の3つを指定します。

  • 最初に、新しい行を挿入するテーブルをINSERT INTO句に指定します。
  • 2番目に、括弧で囲まれたテーブル内の列のコンマ区切りリスト。
  • 3番目に、VALUES内の括弧で囲まれた値のコンマ区切りリスト。

列のリストには、値のリストと同じ数の要素が含まれている必要があります。そうでない場合、データベースエンジンはエラーを発行します。

見てみましょう。次のshippersテーブル:


次のINSERTステートメントは、shippersテーブルに新しい行を挿入します:

1
2

INSERT INTO shippers(companyname、phone)
VALUES( “Alliance Shippers”、 “1-800-222-0451″);

2つの定数、"Alliance Shippers""1-800-222-0451"は、VALUES句で指定されています。データベースエンジンは、それらをそれぞれcompanyname列とphone列に挿入しました。

ステートメントの実行後、データベースサーバー影響を受ける行の数を示すメッセージを返します。この場合、新しい行が正常に挿入されたことを通知する「1行が影響を受けました」というメッセージが表示されます。

shipperIDを指定しなかったことに注意してください。 shipperID列はAUTO INCREMENT列であるため、列リストの列は、新しい行があるたびにデータベースエンジンが自動的に次のシーケンスを生成します。はテーブルに挿入されます。

コードの記述を減らすために、SQLでは次のように短い形式のINSERTステートメントを提供しています。

1
2

INSERTINTOテーブル
VALUES(value1、value2、…)

この形式では、値のリストはテーブルの列のリストと同じ順序である必要があります。この形式のステートメントでは、AUTO INCREMENT列を除くすべての列に値を指定する必要があります。

列名を使用することをお勧めします。 INSERTステートメントを使用してコードの保守を容易にします。

次のINSERTステートメントは、次のステートメントと同じ効果があります。上:

1
2

配送業者に挿入
値(” Alliance Shippers “、” 1-800-222-0451 “);

SQL INSERTステートメント–テーブルに複数の行を挿入します

INSERTステートメントでは、次のように1つのステートメントを使用してテーブルに複数の行を挿入することもできます。

1
2
3
4

INSERT INTO table_name(column1、column2…)
VALUES(value1、value2、…)、
(value1、value2、…) 、

この中フォームでは、値の複数のリストを提供する必要があります。各リストはコンマで区切られます。

次のINSERTステートメントは、2行をshippersテーブルに挿入します。

1
2
3

INSERT INTO shippers(companyName、phone)
VALUES( “UPS”、 “1-800-782-7892″)、
( “DHL”、 “1-800-225-5345″)

SQL INSERTステートメント–テーブルデータのコピー

値のリストを指定する代わりに、SELECTステートメントを使用して別のテーブルから値を選択し、それらをINSERTに提供できます。ステートメント。これにより、テーブルから別のテーブルにデータをコピーできます。

次のステートメントは、another_tableから:

1
2
3
4
5
6
7

INSERT INTO table(column1、column2、…)
SELECT
column1、column2、…
FROM
another_table
WHERE
condition

SELECT句の列のリストは、INSERT INTOの列のリストに対応している必要があります句。部分的なデータのみをコピーする場合は、WHERE句で条件を指定する必要があります。

同じ名前のshippers_tmpという名前の一時テーブルがあるとします。 shippersテーブルとしての構造。 shippersテーブルからshippers_tmpテーブルにデータをコピーするには、次のステートメントを使用します。

1
2
3
4
5

INSERT INTO shippers_tmp(shipperid、name、phone)
SELECT
shipperid、companyName、電話
FROM
荷送人

このチュートリアルでは、INSERTステートメントを使用して1つ以上の行をテーブルに挿入する方法を学習しました。さらに、INSERT SELECT INTOステートメントを使用して、テーブルから別のテーブルにデータをコピーする方法も学習しました。

  • このチュートリアルは役に立ちましたか?
  • はいいいえ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です