Backend Technology

[DB / mySQL] INSERTで複数あるデータを一括で入れる

2021-01-02

データベースでデータを入れる時、複数あるデータを入れることになると思うが、その際に簡単な方法で入れられる書き方を整理する。


INSERTの書き方

INSERT文を使用するには、下記のように書く。

INSERT INTO テーブル (カラム1, カラム2) VALUES (データ1, データ2);


作ったテーブルを確認する

今回はこちらをもとに、テーブルを作った。


データベースの使い方


CREATE TABLE hiking.hikers(
     hikers_id int PRIMARY KEY NOT NULL,    //IDをいれる。他の表と紐づけるからPRIMARY KEYをつける。空欄はだめ。
     name VARCHAR(10),          //名前を入れる
     address VARCHAR(40),       //アドレスを入れる
     tel VARCHAR(20),          //電話番号。 -とか、+81とか入るかもしれないからVARCHAR
);

詳しくはこちらを参照。


4つのデータを一気に入れる

4つの情報を一気に書く時の形はこうなる。

INSERT INTO テーブル名
  (カラム名1, カラム名2, カラム名3)
VALUES 
  (実際のデータ1, 実際のデータ2, 実際のデータ3),
  (実際のデータ1, 実際のデータ2, 実際のデータ3),
  (実際のデータ1, 実際のデータ2, 実際のデータ3);


// hikersテーブルのExample
INSERT INTO hikers
  (hikers_id, name, address, tel)
VALUES 
  (1, "山田太郎", "東京都品川区", "090-1234-5678"),
  (2, "田中花子", "東京都渋谷区", "080-5555-9999"),
  (3, "鈴木新二", "神奈川県横浜市","070-2626-6262"),
  (4, "南雲恵子", "埼玉県川越市", "080-0000-0000");


VALUEの()の部分をコンマで繋ぐことで、一行一行丁寧に書かなくても良くなる。

//一行ずつ書いた時の例
INSERT INTO テーブル名 (カラム名1, カラム名2, カラム名3) VALUES (実際のデータ1, 実際のデータ2, 実際のデータ3);
INSERT INTO テーブル名 (カラム名1, カラム名2, カラム名3) VALUES (実際のデータ1, 実際のデータ2, 実際のデータ3);
INSERT INTO テーブル名 (カラム名1, カラム名2, カラム名3) VALUES (実際のデータ1, 実際のデータ2, 実際のデータ3);


SELECTを使って、入れたデータを実際に確認

以下のコマンドを打つと、hikersテーブルに入れた情報を全部引き出してくれる。

select * from hikers;


今回は下記のように表示される。

+-----------+--------------+-----------------------+---------------+
| hikers_id | name         | address               | tel           |
+-----------+--------------+-----------------------+---------------+
|         1 | 山田太郎     | 東京都品川区          | 090-1234-5678 |
|         2 | 田中花子     | 東京都渋谷区          | 080-5555-9999 |
|         3 | 鈴木新二     | 神奈川県横浜市        | 070-2626-6262 |
|         4 | 南雲恵子     | 埼玉県川越市          | 080-0000-0000 |
+-----------+--------------+-----------------------+---------------+
4 rows in set (0.00 sec)


ターミナルの写真で見る

mySQLの使い方、データベース

-Backend, Technology