SQL 速習チュートリアル

SQL INSERT INTO文

1. SQL INSERT INTO文

1.1 SQL INSERT INTO文について

INSERT INTO 文は、テーブルに新しいレコード(行)を挿入するために使用されます。

INSERT INTO 文の記述方法には、主に2つの書き方があります。

1.2 構文1

挿入するカラム名と値の両方を指定する方法です。

INSERT INTO _テーブル名_ (_カラム1_, _カラム2_, _カラム3_, ...)
VALUES (_値1_, _値2_, _値3_, ...);

1.3 構文2

テーブルのすべてのカラムに値を挿入する場合、カラム名を省略することができます。

ただし、値の順序はテーブル内のカラムの順序と同じである必要があります

INSERT INTO _テーブル名_
VALUES (_値1_, _値2_, _値3_, ...);

2. デモデータベース

以下の例で使用している Customers テーブルのデータの一部を抜粋します。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
89White Clover MarketsKarl Jablonski305 - 14th Ave. S. Suite 3BSeattle98128USA
90Wilman KalaMatti KarttunenKeskuskatu 45Helsinki21240Finland
91WolskiZbyszekul. Filtrowa 68Walla01-012Poland

3. INSERT INTOの例

ここでは、テーブルのすべてのカラムに値を挿入しているため、カラム名を省略しています。

以下のSQL文は、"Customers" テーブルに新しいレコードを1件挿入します。

3.1 例

INSERT INTO Customers
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');

"Customers" テーブルの最後のレコードは以下のようになります。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
92CardinalTom B. ErichsenSkagen 21Stavanger4006Norway

注意: CustomerID フィールドには数値を挿入していません!

CustomerID カラムは auto-increment (自動採番) されるフィールドであり、新しいレコードが挿入されるときに自動的に生成されます。

4. 特定のカラムのみにデータを挿入する

ここでは、テーブルの特定のカラムにのみ値を挿入しています。

以下のSQL文は、新しいレコードを挿入しますが、"CustomerName"、"City"、"Country" カラムにのみデータを挿入しています(CustomerIDは自動的に更新されます)。

4.1 例

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

"Customers" テーブルの最後のレコードは以下のようになります。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
92CardinalnullnullStavangernullNorway

5. 複数行の挿入

複数の行のデータを挿入するには、同じ INSERT INTO 文を使用し、複数の値を指定します。

以下のSQL文は、"Customers" テーブルに3件の新しいレコードを挿入します。

5.1 例

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" テーブルの最後の3件のレコードは以下のようになります。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
92CardinalTom B. ErichsenSkagen 21Stavanger4006Norway
93Greasy BurgerPer OlsenGateveien 15Sandnes4306Norway
94Tasty TeeFinn EganStreetroad 19BLiverpoolL1 0AAUK