PythonとSQLiteを使ったリレーショナルデータベースの設計と操作

この記事では、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操作、さらには応用例として複数レコードの一括挿入やテーブルの結合方法までを網羅しました。

コメント

コメントする

目次