カテゴリ: MySQL 更新日: 2026/03/08

MySQLで複数行INSERTを行う方法と注意点を徹底解説|SQL基礎から学ぶデータベース入門

MySQLで複数行INSERTを行う方法と注意点
MySQLで複数行INSERTを行う方法と注意点

先生と生徒の会話形式で理解しよう

生徒

「MySQLでデータを一気にまとめて追加する方法はありますか?1行ずつINSERTするのは大変そうです。」

先生

「ありますよ。MySQLでは複数行INSERTという書き方を使えば、1回のSQLで何件ものデータを追加できます。作業時間の短縮やパフォーマンス向上にもつながります。」

生徒

「パソコン初心者でも理解できますか?SQLって難しそうで…。」

先生

「大丈夫です。紙の名簿にまとめて名前を書き込むイメージで考えれば分かりやすいです。今日はMySQLの複数行INSERTの基本から注意点まで、ゆっくり解説します。」

1. MySQLとINSERT文の基本を理解しよう

1. MySQLとINSERT文の基本を理解しよう
1. MySQLとINSERT文の基本を理解しよう

MySQLは、データベース管理システムと呼ばれるソフトウェアです。データベースとは、住所録や会員名簿のように、たくさんの情報を整理して保存する箱のようなものです。SQLは、その箱に命令を出すための言葉です。

INSERT文とは、テーブルと呼ばれる表の中に、新しいデータを追加する命令です。例えば、会員管理システムで新しい会員を登録するときに使います。

まずは、基本となる1行のINSERT文を見てみましょう。


id | name       | age | email
---+------------+-----+-------------------
(まだデータはありません)

INSERT INTO users (id, name, age, email)
VALUES (1, '山田太郎', 25, 'taro@example.com');

id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com

このように、1件ずつデータを追加するのが基本のINSERT文です。

2. MySQLで複数行INSERTを行う書き方

2. MySQLで複数行INSERTを行う書き方
2. MySQLで複数行INSERTを行う書き方

MySQLでは、VALUESのあとにカンマ区切りで複数のデータを書くことで、複数行INSERTができます。これは、名簿に何人も一気に書き込むイメージです。


id | name       | age | email
---+------------+-----+-------------------
(まだデータはありません)

INSERT INTO users (id, name, age, email)
VALUES 
(1, '山田太郎', 25, 'taro@example.com'),
(2, '佐藤花子', 19, 'hanako@example.com'),
(3, '鈴木一郎', 30, 'ichiro@example.com'),
(4, '田中次郎', 22, 'jiro@example.com');

id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中次郎   | 22  | jiro@example.com

このように、1回のSQL実行で4件のレコードを登録できました。MySQLの複数行INSERTは、大量データ登録やバッチ処理でもよく使われます。

3. 複数行INSERTのメリットとパフォーマンス向上

3. 複数行INSERTのメリットとパフォーマンス向上
3. 複数行INSERTのメリットとパフォーマンス向上

MySQLで複数行INSERTを使う最大のメリットは、処理速度の向上です。1行ずつINSERTを何回も実行すると、そのたびにデータベースと通信が発生します。

しかし、複数行INSERTなら、通信回数が減ります。これは、何回も役所に行くのではなく、まとめて書類を提出するようなものです。結果として、パフォーマンスが良くなり、サーバー負荷も軽減されます。


INSERT INTO users (name, age, email)
VALUES 
('高橋健', 28, 'ken@example.com'),
('中村優子', 26, 'yuko@example.com');

このように、idがAUTO_INCREMENTの場合は省略できます。AUTO_INCREMENTとは、自動的に番号を振ってくれる仕組みです。

4. INSERT時のエラーと注意点

4. INSERT時のエラーと注意点
4. INSERT時のエラーと注意点

複数行INSERTには注意点もあります。例えば、主キーと呼ばれる重複してはいけない列に同じ値を入れるとエラーになります。


INSERT INTO users (id, name, age, email)
VALUES 
(1, '山本誠', 24, 'makoto@example.com'),
(1, '小林直子', 27, 'naoko@example.com');

この場合、idが重複しているためエラーになります。MySQLでは、1件でもエラーがあると全体が失敗することがあります。

そのため、事前にデータの確認を行うことが大切です。

5. INSERT IGNOREやON DUPLICATE KEY UPDATEの活用

5. INSERT IGNOREやON DUPLICATE KEY UPDATEの活用
5. INSERT IGNOREやON DUPLICATE KEY UPDATEの活用

MySQLには、エラーを回避する方法もあります。INSERT IGNOREを使うと、エラーになる行を無視して処理を続けます。


INSERT IGNORE INTO users (id, name, age, email)
VALUES 
(1, '山本誠', 24, 'makoto@example.com'),
(5, '小林直子', 27, 'naoko@example.com');

また、ON DUPLICATE KEY UPDATEを使うと、重複時に更新処理へ切り替えられます。


INSERT INTO users (id, name, age, email)
VALUES (2, '佐藤花子', 20, 'hanako_new@example.com')
ON DUPLICATE KEY UPDATE
age = VALUES(age),
email = VALUES(email);

これは、既に存在するデータを上書きしたい場合に便利な書き方です。

6. トランザクションと安全なデータ登録

6. トランザクションと安全なデータ登録
6. トランザクションと安全なデータ登録

大量データを扱う場合は、トランザクションも重要です。トランザクションとは、一連の処理をまとめて管理する仕組みです。


START TRANSACTION;

INSERT INTO users (name, age, email)
VALUES 
('加藤亮', 31, 'ryo@example.com'),
('松本愛', 29, 'ai@example.com');

COMMIT;

もし途中で問題があれば、ROLLBACKで元に戻すこともできます。これは、書き間違えたら消しゴムで消せる仕組みと考えると分かりやすいです。

MySQLで複数行INSERTを行う方法を理解することで、SQL基礎力が向上し、データベース操作の効率も大きく上がります。初心者の方も、まずは少ない件数で練習しながら、安全にデータを扱う感覚を身につけていきましょう。

カテゴリの一覧へ
新着記事
New1
PostgreSQL
PostgreSQLのLIMIT・OFFSETとパフォーマンス問題を完全解説|初心者でもわかる安全な使い方
New2
MySQL
MySQLのUPDATE文でデータを更新する基本を徹底解説|SQL初心者でもわかるデータベース更新入門
New3
PostgreSQL
PostgreSQLのOFFSET完全入門|並び替えと組み合わせてデータをスキップする方法を初心者向けに解説
New4
MySQL
MySQLで複数行INSERTを行う方法と注意点を徹底解説|SQL基礎から学ぶデータベース入門
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのDISTINCT完全ガイド|SQLで重複データを除外する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLのLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLのpublicスキーマの役割と扱い方
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎