PythonでSQLiteを使ったデータベース操作を解説します。SQLiteはファイル1つで動くデータベースで、Pythonに標準で含まれています。
SQLiteデータベースの基本操作
import sqlite3
# データベースの作成・接続
conn = sqlite3.connect("mydb.sqlite")
conn.row_factory = sqlite3.Row # 辞書形式でアクセス可能にする
cur = conn.cursor()
# テーブルの作成
cur.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
)
""")
conn.commit()CRUD操作
# INSERT(プレースホルダーでSQLインジェクションを防ぐ)
cur.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)",
("Taro", 25, "taro@example.com"))
conn.commit()
# SELECT
cur.execute("SELECT * FROM users WHERE age > ?", (20,))
for row in cur.fetchall():
print(dict(row))
# UPDATE
cur.execute("UPDATE users SET age = ? WHERE name = ?", (26, "Taro"))
conn.commit()
# DELETE
cur.execute("DELETE FROM users WHERE name = ?", ("Taro",))
conn.commit()
conn.close()with文でコネクションを安全に管理
with sqlite3.connect("mydb.sqlite") as conn:
conn.row_factory = sqlite3.Row
cur = conn.cursor()
cur.execute("SELECT * FROM users")
users = [dict(row) for row in cur.fetchall()]
print(users)まとめ
- sqlite3はPython標準ライブラリで追加インストール不要
- プレースホルダー(?)を使うことでSQLインジェクションを防げる
- conn.row_factory = sqlite3.Rowで辞書形式のアクセスができる
- with文でコネクションを安全に管理できる



コメント