【Python】SQLAlchemyを使ってデータベース操作をシンプルに!
◇前置き
今回はPythonの外部ライブラリであるSQLAlchemyについて紹介します。
◇SQLAIchemyとは
SQLAlchemyは、PythonのオープンソースのORM(Object Relational Mapper)ライブラリであり、データベースとのやり取りをシンプルかつ効率的に行うことができます。
SQLAlchemyを使うと、Pythonのコード内でSQL文を直接書くことなく、データベースにアクセスすることができます。
これにより、データベースのテーブルやクエリをPythonのオブジェクトとして扱うことができます。
ORMを使用することで、データベース操作における再利用性と保守性が向上します。
◇SQLAIchemyのインストール
まずは、SQLAlchemyをインストールしましょう。
以下のコマンドを実行すると、簡単にインストールできます。
pip install sqlalchemy
◇サンプルコード
インストールが出来たら、データベースに接続するためのURLを設定します。
例えば、MySQLを使用する場合は以下のように設定します。
from sqlalchemy import create_engine # MySQLに接続する場合のURL url = 'mysql://ユーザー名:パスワード@ホスト名:ポート/データベース名' # SQLAlchemyエンジンを作成 engine = create_engine(url)
接続が完了したら、テーブルを作成してデータを操作する準備が整えます。
テーブルは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) age = Column(Integer)
テーブルの作成が完了したら、データベースにテーブルを反映させるためにマイグレーションを行います。
Base.metadata.create_all(engine)
これでテーブルがデータベース内に作成されました。
次に、データの操作方法を紹介します。例えば、新しいユーザーを作成する場合は以下のようにします。
from sqlalchemy.orm import sessionmaker # セッションを作成 Session = sessionmaker(bind=engine) session = Session() # 新しいユーザーを作成 new_user = User(name='John', age=25) session.add(new_user) session.commit()
ユーザーの一覧を取得するには、クエリを使用します。
# 全てのユーザーを取得 users = session.query(User).all() # ユーザーの情報を表示 for user in users: print(f"ID: {user.id}, Name: {user.name}, Age: {user.age}")
特定の条件に一致するユーザーを取得する場合は、フィルタリングを行います。
# 年齢が30以上のユーザーを取得 users = session.query(User).filter(User.age >= 30).all()
データの更新や削除も簡単に行えます。
# 特定のユーザーの名前を更新 user = session.query(User).get(1) # IDが1のユーザーを取得 user.name = "Updated Name" session.commit() # 特定のユーザーを削除 user = session.query(User).get(1) # IDが1のユーザーを取得 session.delete(user) session.commit()
以上が、PythonのSQLAlchemyを使ったデータベース操作の基本的な説明です。