ページ内ナビ
概要
SQLAlchemyはPython向けのSQLツールキット兼ORMです。SQL式・接続・トランザクション・コネクションプールを扱うCoreと、identity map・unit of work・data mapperを備えたORMを同じ基盤で提供し、必要な抽象度を選びながらリレーショナルDBへアクセスできます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
CoreでSQL式・接続・トランザクション・スキーマを明示的に扱う
Engineを接続先の中心として作成し、SQL Expression Language、schema metadata、connection pooling、型変換、DBAPI連携をCoreから利用できます。ORMを使わずSQLに近い粒度で構成することもできます。
ORMでidentity map・unit of work・relationship loadingを組み合わせる
ORMはdata mapper、identity map、unit of workを基盤に、declarative mapping、関連オブジェクトのloading、リレーショナルなquery構成を提供します。ORMでもSQLのjoin・subquery等を明示的に組み立てられます。
出典:[2]
向いている用途
導入前の確認
2.1.3はPython 3.11以上。DB driverとtransaction境界を別途決める
SQLAlchemy 2.1.3はPython 3.11以上を要求し、PostgreSQL・MySQL・Oracle等のdriverは用途に応じた追加依存です。Connectionは自動でcommitされないため、Engine.begin()やConnection.commit()等でtransaction境界を設計します。2.1.3はORMとSQL compilerのregression修正を含むため、2.1系更新時はmapping順序やSQL生成を回帰確認してください。
参考にした公式資料
- [1]sqlalchemy/sqlalchemy — GitHub repository(2026-10-06)
- [2]SQLAlchemy 2.1.3 — README(2026-10-06)
- [3]SQLAlchemy 2.1.3 — pyproject.toml(2026-10-06)
- [4]SQLAlchemy 2.1 tutorial — Engine(2026-10-06)
- [5]SQLAlchemy 2.1 tutorial — Transactions(2026-10-06)
- [6]SQLAlchemy 2.1.3 release(2026-10-06)
- [7]SQLAlchemy MIT license(2026-10-06)
編集部からの補足
ORMだけでなくCoreを独立して使えるため、抽象化を固定せずSQL制御へ降りられる点が強みです。導入時はDB driver、transaction境界、Sessionのlifecycleをapplication全体で揃えると運用しやすくなります。
3ステップで試す
- 1
SQLAlchemy 2.1.3を導入する
確認対象の安定版を固定して導入します。SQLAlchemy 2.1.3はPython 3.11以上が必要です。
python -m pip install "SQLAlchemy==2.1.3" - 2
SQLite in-memoryへ接続するscriptを作る
公式tutorialと同じSQLite in-memory Engineを使い、外部databaseなしで接続とSQL実行を確認します。
cat > demo_sqlalchemy.py <<'PY' from sqlalchemy import create_engine, text engine = create_engine('sqlite+pysqlite:///:memory:') with engine.connect() as conn: value = conn.execute(text("select 'hello world'")).scalar_one() print(value) PY - 3
SQLを実行して結果を確認する
hello worldが表示されれば、Engine・Connection・text()による最小のCore処理を確認できます。
python demo_sqlalchemy.py
成長
成長の推移 · 直近30日
12,201 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- jOOQ6,794 Stars
共通タグ 3件 · 共通カテゴリ 2件
SQLをJavaの型安全なDSLとして組み立て、データベース定義からコードを生成するライブラリ
Java - Hibernate ORM6,467 Stars
共通タグ 3件 · 共通カテゴリ 2件
Java entity state・transaction・query・dialectをJakarta Persistence/JPA上で統合するrelational persistence framework
Java - Sequel5,098 Stars
共通タグ 3件 · 共通カテゴリ 2件
Dataset DSL・Model・migrationを一つにまとめ、SQLの構造を保ってRubyからdatabaseを扱う
Ruby - Bun4,984 Stars
共通タグ 3件 · 共通カテゴリ 2件
SQLの構造を保ったquery builderとmodel mappingをdatabase/sql上へ追加するGo ORM
Go - Spring Data JPA3,287 Stars
共通タグ 3件 · 共通カテゴリ 2件
JPA repositoryのCRUD・finder・paginationをinterfaceから自動実装する
Java - asyncpg8,098 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
asyncioからPostgreSQLのbinary protocolを直接扱う高性能Pythonドライバ
Python
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。