Python学習講座

PythonエンジニアによるPython3学習サイト

SQLAlchemy 応用編 DB操作

SQLAlchemy入門 SQLAlchemyとは

2018/02/25


SQLAlchemyとは

SQLAlchemyとは、Pythonの中では最もよく利用されているORMの一つです。ORM以外にも以下の機能を持ちます。

1 データベースへの接続、SQLの実行
2 メタデータ
3 SQL Expression Language
4 ORM

それぞれ簡単に説明しましょう。

データベースへの接続、SQLの実行

SQLAlchemyは様々なデータベースに対して接続してSQLを実行することができます。
サポートするDBMSは以下のとおりです。有名どころは大抵利用可能です。

  • Firebird
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite
  • Sybase

メタデータ

SQLAlchemyにはメタデータと呼ばれるテーブルとPythonのモデルクラスをマッピングする機能があります。個人的にはSQLAlchemyで最も強力な機能の一つと考えています。

Pythonコードとテーブルを完全に同期させることが可能であり、テーブルの変更をコードに、コードの変更をテーブルに適用することも可能です。

開発中のマイグレーションの手間を省力化することができます。

SQL Expression Language

JavaのORM、HibernateにはHQLというクエリ言語がありますが、SQLAlchemyにも同様にクエリを表す記述が用意されています。

SQL Expression Languageを使用することにより、PythonコードとSQLコードが混在しなくなり、コードの保守性が向上します。

ORM

そして最後がメインのORMです。クエリの実行結果をモデルに格納します。オブジェクトへのデータセットが自動化されるため、開発を効率化させることができます。ただし、データ分析のような表形式のデータをそのまま使いたい場合にはやや不向きかもしれません。

SQLAlchemyのインストール

pipでインストールすることが可能です。

pip install sqlalchemy

SQLAlchemy入門 SQLAlchemyとは
SQLAlchemy入門 接続とSQL実行
SQLAlchemy入門 メタデータによるスキーマの定義
SQLAlchemy入門 SQL Expression Language
SQLAlchemy入門 ORM その1
SQLAlchemy入門 ORM その2 さまざまなクエリ
SQLAlchemy入門 ORM その3 JOIN
SQLAlchemy入門 ORM その4 リレーションとJOIN

-SQLAlchemy, 応用編, DB操作