この記事では、Python言語とSQLiteデータベースを使用して、リレーショナルデータベースの設計と操作方法を詳しく解説します。具体的なコード例とその詳細な解説、応用例を含めています。
目次
はじめに
PythonとSQLiteを組み合わせることで、簡単かつ効率的にリレーショナルデータベースの設計と操作が可能です。特に中規模以下のプロジェクトや個人での使用においては、この組み合わせは非常に有用です。
PythonとSQLiteの基礎
Pythonは多くのライブラリやフレームワークがありますが、SQLiteと連携する場合には、標準ライブラリである`sqlite3`を使用することが一般的です。
sqlite3のインストールと初期設定
Pythonの標準ライブラリに含まれているため、特にインストールの必要はありません。
import sqlite3
データベースの作成とテーブルの設計
データベースの作成
SQLiteデータベースを作成する基本的なコードは以下のようになります。
# データベースに接続
conn = sqlite3.connect('example.db')
# 接続を閉じる
conn.close()
テーブルの作成
テーブルを作成するには、SQLの`CREATE TABLE`文を使用します。
# データベースに接続
conn = sqlite3.connect('example.db')
c = conn.cursor()
# テーブルの作成
c.execute('''
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);
''')
# 変更をコミット
conn.commit()
# 接続を閉じる
conn.close()
データの挿入、更新、削除
データの挿入
# データベースに接続
conn = sqlite3.connect('example.db')
c = conn.cursor()
# データの挿入
c.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
# 変更をコミット
conn.commit()
# 接続を閉じる
conn.close()
データの更新
# データベースに接続
conn = sqlite3.connect('example.db')
c = conn.cursor()
# データの更新
c.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")
# 変更をコミット
conn.commit()
# 接続を閉じる
conn.close()
応用例
複数レコードの一括挿入
# データベースに接続
conn = sqlite3.connect('example.db')
c = conn.cursor()
# 複数レコードの一括挿入
users_data = [('Bob', 40), ('Charlie', 50), ('Dave', 60)]
c.executemany("INSERT INTO users (name, age) VALUES (?, ?)", users_data)
# 変更をコミット
conn.commit()
# 接続を閉じる
conn.close()
テーブルの結合
# データベースに接続
conn = sqlite3.connect('example.db')
c = conn.cursor()
# テーブルの結合
c.execute('''
SELECT users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
''')
まとめ
この記事では、PythonとSQLiteを用いたリレーショナルデータベースの設計と操作について解説しました。基本的なテーブルの作成からデータのCRUD操作、さらには応用例として複数レコードの一括挿入やテーブルの結合方法までを網羅しました。
コメント