SQL INSERT INTO

SQL INSERT INTOステートメント

INSERT INTOステートメントは、テーブルに新しいレコードを挿入するために使用されます。

INSERT INTO構文

INSERT INTOステートメントを書く方法は2つあります:

  1. 列名と挿入する値を指定する方法:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  1. テーブルのすべての列に値を追加する場合は、SQLクエリで列名を指定する必要はありません。ただし、値の順序がテーブル内の列の順序と同じであることを確認してください。この場合、INSERT INTO構文は次のようになります:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

デモデータベース

以下は、例で使用されるCustomersテーブルの一部です:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 – 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland

INSERT INTO例

以下のSQLステートメントは、”Customers”テーブルに新しいレコードを挿入します:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');

“Customers”テーブルの選択は次のようになります:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 – 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal Tom B. Erichsen Skagen 21 Stavanger 4006 Norway

注:CustomerIDフィールドに番号を挿入していないことに気づきましたか?
CustomerID列は自動インクリメントフィールドであり、新しいレコードがテーブルに挿入されると自動的に生成されます。

特定の列にのみデータを挿入する

特定の列にのみデータを挿入することも可能です。

以下のSQLステートメントは、新しいレコードを挿入しますが、「CustomerName」、「City」、「Country」列にのみデータを挿入します(CustomerIDは自動的に更新されます):

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

“Customers”テーブルの選択は次のようになります:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 – 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal null null Stavanger null Norway

複数行の挿入

1つのステートメントで複数の行を挿入することも可能です。

複数のデータ行を挿入するには、同じINSERT INTOステートメントを使用しますが、複数の値を指定します:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES
('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'),
('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'),
('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK');

各セットの値をカンマで区切ることを確認してください。

“Customers”テーブルの選択は次のようになります:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 – 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal Tom B. Erichsen Skagen 21 Stavanger 4006 Norway
93 Greasy Burger Per Olsen Gateveien 15 Sandnes 4306 Norway
94 Tasty Tee Finn Egan Streetroad 19B Liverpool L1 0AA UK