Contents
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