連載
イチから全部作ってみよう(32)PythonでSQLを実行してデータベースを操作する:山浦恒央の“くみこみ”な話(201)(3/4 ページ)
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第32回は、さらに一歩踏み込み、PythonプログラムからSQLを実行してデータベースを操作する方法を解説する。
4.3 データの登録
テーブルが作成できたので、INSERT文からデータを登録します(図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.
