イチから全部作ってみよう(32)PythonでSQLを実行してデータベースを操作する山浦恒央の“くみこみ”な話(201)(3/4 ページ)

» 2026年05月20日 06時00分 公開

4.3 データの登録

 テーブルが作成できたので、INSERT文からデータを登録します(図5)。

図5 図5 データ登録のイメージ[クリックで拡大]

4.3.1 SQLiteから実行する場合

 SQLiteで実行する場合は、次のように記述します。

INSERT INTO Product VALUES (1, 'ブルゴーニュ ピノノワール', 'img1.png', 2022, 'ドメーヌ・ヤマモト', 5000, 10);
INSERT INTO Product VALUES (2, 'ブルゴーニュ ピノノワール', 'img2.png', 2023, 'ドメーヌ・スズキ', 10000, 20);
INSERT INTO Product VALUES (3, 'ブルゴーニュ シャルドネ', 'img3.png', 2021, 'ドメーヌ・ヤマダ', 4300, 4);
INSERT INTO Product VALUES (4, 'ブルゴーニュ シャルドネ', 'img4.png', 2021, 'ドメーヌ・ササキ', 3670, 8);

4.3.2 Pythonから実行する場合

 Pythonでは、リストのデータを一括でデータベースに登録できるexecutemanyメソッドを活用します。

import sqlite3
# 登録するデータをリストとして定義
data = [
    (1, 'ブルゴーニュ ピノノワール', 'img1.png', 2022, 'ドメーヌ・ヤマモト', 5000, 10),
    (2, 'ブルゴーニュ ピノノワール', 'img2.png', 2023, 'ドメーヌ・スズキ', 10000, 20),
    (3, 'ブルゴーニュ シャルドネ', 'img3.png', 2021, 'ドメーヌ・ヤマダ', 4300, 4),
    (4, 'ブルゴーニュ シャルドネ', 'img4.png', 2021, 'ドメーヌ・ササキ', 3670, 8),
]
# データベースへの接続とINSERT文の実行
with sqlite3.connect("EC_Database.db") as conn:
    conn.executemany(
        "INSERT INTO Product (id, name, image, vintage, winery, price, stock) VALUES (?, ?, ?, ?, ?, ?, ?)",
        data
    )

4.3.3 Pythonプログラムの解説

 Pythonプログラムの解説を下記に示します。

  • (1)リストの定義
    挿入する商品データをdataというリストに定義する
  • (2)connect関数
    データベースに接続する
  • (3)executemanyメソッド
    同一のSQL文に対して、複数のパラメータを順に適用して、繰り返し実行するメソッドです。複数のデータをまとめて登録する場合に有効です

Copyright © ITmedia, Inc. All Rights Reserved.

特別協賛PR
スポンサーからのお知らせPR
Pickup ContentsPR
Special SitePR
あなたにおすすめの記事PR