カテゴリ: Python 更新日: 2026/03/05

Pythonで複数行データを一括挿入する方法を完全解説!executemanyの使い方を初心者向けに解説

Pythonで複数行データを一括挿入する方法(executemany の使い方)
Pythonで複数行データを一括挿入する方法(executemany の使い方)

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

生徒

「Pythonでデータベースにたくさんのデータを入れたいとき、1件ずつINSERTしないとダメなんですか?」

先生

「1件ずつでもできますが、とても時間がかかります。そんなときに使うのがexecutemanyです。」

生徒

「名前からして難しそうですが、初心者でも使えますか?」

先生

「大丈夫です。まとめて渡すだけなので、むしろ考え方はシンプルですよ。」

1. 複数行データを一括挿入するとは

1. 複数行データを一括挿入するとは
1. 複数行データを一括挿入するとは

複数行データの一括挿入とは、たくさんのデータをまとめてデータベースに保存する方法です。例えば、名簿や商品一覧のように、同じ形式のデータを何件も登録したい場面で使われます。1件ずつ保存するよりも速く、プログラムもすっきりします。

2. 1件ずつINSERTする場合の問題点

2. 1件ずつINSERTする場合の問題点
2. 1件ずつINSERTする場合の問題点

INSERT文を何度も実行すると、そのたびにデータベースとやり取りが発生します。これは郵便物を1通ずつ運ぶようなもので、数が増えるほど時間がかかります。大量のデータを扱うと、処理が遅くなり、実用的でなくなることがあります。


cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("山田", 20))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("佐藤", 22))

3. executemanyとは何か

3. executemanyとは何か
3. executemanyとは何か

executemanyは、同じSQL文を複数のデータに対してまとめて実行するための仕組みです。SQLの形は1つだけ用意し、そこに複数行分の値を一気に渡します。これにより、処理速度が向上し、コードも読みやすくなります。

4. executemanyの基本的な使い方

4. executemanyの基本的な使い方
4. executemanyの基本的な使い方

executemanyでは、プレースホルダー付きのSQL文と、値の集合を渡します。値の集合は、タプルを複数まとめたリストです。


import sqlite3

conn = sqlite3.connect("sample.db")
cursor = conn.cursor()

data = [
    ("山田", 20),
    ("佐藤", 22),
    ("鈴木", 25)
]

cursor.executemany(
    "INSERT INTO users (name, age) VALUES (?, ?)",
    data
)
conn.commit()

5. データ構造とプレースホルダーの関係

5. データ構造とプレースホルダーの関係
5. データ構造とプレースホルダーの関係

executemanyでは、SQL文の「?」の数と、1行分のデータの数を一致させる必要があります。例えば「名前」と「年齢」を入れる場合は、2つの値を持つタプルを用意します。これがズレるとエラーになります。

6. トランザクションと組み合わせた安全な挿入

6. トランザクションと組み合わせた安全な挿入
6. トランザクションと組み合わせた安全な挿入

一括挿入では、途中で失敗すると困るため、まとめてcommitするのが基本です。すべて成功したら確定し、問題があれば取り消します。


try:
    cursor.executemany(
        "INSERT INTO users (name, age) VALUES (?, ?)",
        data
    )
    conn.commit()
except:
    conn.rollback()

7. よくあるミスと注意点

7. よくあるミスと注意点
7. よくあるミスと注意点

初心者がよく間違えるのは、データをリストではなく単一のタプルで渡してしまうことです。executemanyは「複数行」を前提にしているため、必ず複数のタプルをまとめた形にします。また、commitを忘れるとデータは保存されません。

8. executemanyが活躍する場面

8. executemanyが活躍する場面
8. executemanyが活躍する場面

CSVファイルの内容をまとめて保存したり、初期データを一気に登録したりする場面でexecutemanyは力を発揮します。大量データを効率よく扱えるため、PythonでのSQLデータベース操作では欠かせない基本技術です。

カテゴリの一覧へ
新着記事
New1
Flask
Flask-RESTfulの基本!API開発をシンプルにする拡張機能の導入方法
New2
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New3
Flask
FlaskのAPI開発でテストを始めよう!初心者でもわかるpytestを使った基本テスト例
New4
Flask
Flaskのエラーページをカスタマイズする方法!404・500ページの作り方まとめ
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコメント活用術!初心者向けにTODO・FIXME・ドキュメンテーションコメントの書き方を完全解説
No.5
Java&Spring記事人気No5
Python
Pythonのbytes型とbytearray型とは?初心者向けにバイナリデータの扱い方を解説!
No.6
Java&Spring記事人気No6
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.7
Java&Spring記事人気No7
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.8
Java&Spring記事人気No8
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説