概要:このチュートリアルでは、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
ステートメントを使用して、テーブルから別のテーブルにデータをコピーする方法も学習しました。
- このチュートリアルは役に立ちましたか?
- はいいいえ