この記事では、Pythonでデータベース操作を行う際によく用いられるライブラリであるSQLAlchemyの基本的な使用方法について解説します。具体的なコード例とその詳細な解説、さらには応用例も含めています。
目次
SQLAlchemyとは
SQLAlchemyは、Pythonでリレーショナルデータベースを操作するためのORM(Object Relational Mapping)ライブラリです。直接SQLクエリを書く必要がなく、Pythonのクラスとメソッドを使用してデータベース操作を行うことができます。
インストール方法
SQLAlchemyを使用する前に、まずはインストールが必要です。以下のpipコマンドで簡単にインストールできます。
pip install SQLAlchemy
基本的な使用方法
SQLAlchemyを使用する基本的な手順は以下の通りです。
1. 接続設定
データベースへの接続設定を行います。
from sqlalchemy import create_engine
# SQLiteでの例
engine = create_engine('sqlite:///example.db')
2. モデル定義
データベースのテーブルをPythonのクラスで定義します。
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
3. テーブル作成
定義したモデルから実際のテーブルを作成します。
Base.metadata.create_all(engine)
データの操作
データの挿入
データをテーブルに挿入する基本的な方法は以下の通りです。
from sqlalchemy.orm import Session
# セッションを開始
session = Session(engine)
# データの挿入
new_user = User(name='John')
session.add(new_user)
# コミット
session.commit()
データの取得
データを取得する基本的な方法は以下の通りです。
# セッションを開始
session = Session(engine)
# データの取得
users = session.query(User).all()
# 出力
for user in users:
print(user.name)
応用例
1. 複数のテーブルの操作
複数のテーブルを連携させる例です。
# 新たなモデルを定義
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email = Column(String)
user_id = Column(Integer)
2. カスケード削除
親テーブルのデータが削除されたときに、関連する子テーブルのデータも自動で削除する設定の例です。
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email = Column(String)
user_id = Column(Integer, ForeignKey('users.id'))
user = relationship("User", back_populates="addresses", cascade="all, delete")
まとめ
この記事では、SQLAlchemyの基本的な使用方法について詳しく解説しました。Pythonでリレーショナルデータベースを効率よく操作するためには、SQLAlchemyは非常に便利なライブラリです。ぜひ活用してみてください。
コメント