既存のテーブルに新規データ(レコード)を複数行追加する書き方insert文について紹介していきます。
前提条件
商品を管理するテーブルに新商品を追加する
使用するテーブル:productsテーブル
+----+-----------------+-------+
| id | name | price |
+----+-----------------+-------+
| 1 | ドックフード001 | 1000 |
| 2 | ドックフード002 | 2000 |
| 3 | ドックフード003 | 1500 |
| ・ | ・ | ・ |
| ・ | ・ | ・ |
| 8 | ドックフード008 | 6500 |
+----+-----------------+-------+
8 rows in set (0.001 sec)
条件:
- id1~8の商品が登録されているテーブルにid8,9の商品と追加する
注意!
今回、紹介する記述方法を使用できるのはMySQL、PosgreSQL、SQL Server、DB2のみ
※Oracleでは利用できません
データ(レコード)を複数行追加する
構文
insert into テーブル名(列名1,列名2,列名3...)
values
(値1,値2,値3...),
(値1,値2,値3...),
(値1,値2,値3...);
コードの見方
テーブル名:データを追加するテーブルを指定
列名:指定したテーブルのカラム名を記述する
値:各カラムに入れる値を記述する
複数行データを追加したい場合には、値をレコードごとにカンマで区切って記述する。
Point!
- カラム名と値の数は必ず一致させること
- 入力する値はカラム名の順番に合わせること
- 文字列はシングルクォーテーションで囲うこと
- レコードの間にはカンマを記述する
使用するSQL文
insert into products(id,name,price)
values
(9,'ドックフード009',3000),
(10,'ドックフード010',5000);
テーブル名には商品一覧のproductsテーブルを指定
カラム名にはproductsテーブルのカラム(id,name,price)を指定
値にはカラム名の順番で任意の値を指定
今回はデータ(レコード)を2行追加するので二つ記述しています。
レコードの間にはカンマを記述する。
上記SQLを入力してからテーブル情報を再度確認する
出力結果
+----+-----------------+-------+
| id | name | price |
+----+-----------------+-------+
| 1 | ドックフード001 | 1000 |
| 2 | ドックフード002 | 2000 |
| 3 | ドックフード003 | 1500 |
| ・ | ・ | ・ |
| ・ | ・ | ・ |
| ・ | ・ | ・ |
| 9 | ドックフード009 | 3000 |
| 10 | ドックフード010 | 5000 |
+----+-----------------+-------+
10 rows in set (0.000 sec)
9行目と10行目にデータが新しく追加された