SQL INSERT文のサンプル

SQLのINSERT文のサンプルです。

目次

INSERT文 (列名を書かない)

INSERT  INTO  テーブル名  VALUES ( ‘値1′ [ , ‘値2’ ]・・・);
  • テーブル名とvaluesの間に、テーブルの列名を書かないINSERT文です。
  • valuesの後にINSERTする値を記述します。
    →値は、テーブルの列の数と同じ数を記述します。
    →値の位置がテーブルの列の位置に対応します。
  • 値をセットしない項目はNULLと書きます。

SQL文

テーブル名とvaluesの間に、列名を書かないINSERT文のサンプルです。

INSERT INTO syain VALUES (1,'鈴木','suzuki');
INSERT INTO syain VALUES (2,'田中',null);

1,2行目ともsyainとVALUESの間にテーブルの列名がありません。
2行目は、VALUESの3つめの値がnullになっています。

結果

結果は、以下のとおりです。

syainテーブル
id
int (11)
name
varchar(20)
romaji
varchar(20)
1 鈴木 suzuki
2 田中 null

 

INSERT文 (列名を書く)

INSERT  INTO  テーブル名 ( テーブルの列名1 [ , テーブルの列名2 ]・・・)  VALUES ( ‘値1′ [ , ‘値2’ ]・・・);
  • テーブル名の後にテーブルの列名を書くINSERT文です。
  • 全てのテーブルの列名を記述する必要はありません。
  • テーブルの列名の位置に対応してvaluesの値を指定します。

SQL文

テーブル名とvaluesの間に、列名を書くINSERT文のサンプルです。

INSERT INTO syain(id,name,romaji) VALUES (1,'鈴木','suzuki');
INSERT INTO syain(id,name,romaji) VALUES (2,'田中',null);
INSERT INTO syain(id,name) VALUES (3,'佐藤');

1,2,3行目ともsyainの後にテーブルの列名があります。
3行目は、syainの後のテーブルの列名とVALUESの後の値が2つのみです。

結果

結果は、以下のとおりです。

syainテーブル
id
int (11)
name
varchar(20)
romaji
varchar(20)
1 鈴木 suzuki
2 田中 null
3 佐藤 null

テーブルの3行目の項目「romaji」の値はnullになっています。

 

INSERT文 (select文の結果をinsertする)

INSERT INTO テーブル名
SELECT 項目名 FROM テーブル名
  • select文の結果をテーブルに挿入するINSERT文です。
  • selectして複数行取得した場合は、複数行がinsertされます。

サンプル

以下、2つのテーブルがあるとします。
1つめのsyain2テーブルです。

syain2テーブル
id name romaji
1 鈴木 suzuki
2 田中 null
3 佐藤 null

2つめのsyain1テーブルです。
データはありません。

syain1テーブル
id name romaji
     

SQL文

上記のsyain2テーブルでselectしてsyain1テーブルにinsertします。

INSERT INTO syain1
SELECT * FROM syain2

2行目でselectした結果を1行目のテーブルにinsertしています。

結果

結果は、以下のとおりです。

syain1テーブル
id name romaji
1 鈴木 suzuki
2 田中 null
3 佐藤 null

syain2テーブルからsyain1テーブルにデータがinsertされました。

列を指定してinsertする場合

select文の結果をテーブルに挿入するinsert文で、列を指定してinsertする場合は以下のようにします。

INSERT INTO syain (
name,
romaji
)
SELECT
name,
romaji
FROM syain2

select文で指定した列名とinsert文の列名を対応させます。

以下は、MySQLのinsert構文のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/insert.html

関連の記事

SQL UPDATE文とDELETE文のサンプル
SQL 重複行を表示しないサンプル(distinct)
SQL 複数の行をまとめる(集約関数/group by/having)
SQL INNER JOINのサンプル(内部結合)
SQL 外部結合のサンプル(left outer join/right outer join)
SQL 副問合せのサンプル(サブクエリ)
SQL 自己結合のサンプル
SQL UNIONとUNION ALLのサンプル(結合して抽出)

△上に戻る