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になっています。
結果
結果は、以下のとおりです。
| 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つのみです。
結果
結果は、以下のとおりです。
| 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文です。
SQL文
select文の結果をinsertするサンプルです。
INSERT INTO syain
SELECT * FROM syain2
syain2テーブルで検索した結果をsyainテーブルにinsertしています。
結果
結果は、以下のとおりです。
| id int (11) |
name varchar(20) |
romaji varchar(20) |
|---|---|---|
| 1 | 鈴木 | suzuki |
| 2 | 田中 | null |
| 3 | 佐藤 | null |
上記insert文の実行の結果、syain2テーブルからsyainテーブルにinsertされました。
| id int (11) |
name varchar(20) |
romaji varchar(20) |
|---|---|---|
| 1 | 鈴木 | suzuki |
| 2 | 田中 | null |
| 3 | 佐藤 | null |
列を指定して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のサンプル