SQLAlchemy Unified Tutorial¶
About this document
SQLAlchemy Unified Tutorialは、SQLAlchemyのコアコンポーネントとORMコンポーネントの間に統合されており、SQLAlchemy全体の統一された入門書として機能します。1.xシリーズのSQLAlchemyのユーザにとって、 2.0 style の作業では、ORMは select()
構文でコアスタイルのクエリを使用し、コア接続とORMセッション間のトランザクションセマンティクスは同等です。各セクションの青いボーダースタイルに注目してください。これにより、特定のトピックがいかに「ORM的」であるかがわかります!
すでにSQLAlchemyに慣れているユーザ、特に1.4の移行フェーズでSQLAlchemy 2.0シリーズの下で動作するように既存のアプリケーションを移行したいと考えているユーザは、 SQLAlchemy 2.0 - Major Migration Guide ドキュメントもチェックしてください。
初心者のために、この文書には 多くの 詳細がありますが、最後には Alchemist となれるでしょう。
SQLAlchemyは、2つの異なるAPIとして提供され、一方は他方の上に構築されます。これらのAPIは Core および ORM として知られています。
SQLAlchemy Core は、”データベース・ツールキット”としてのSQLAlchemyの基本アーキテクチャです。このライブラリには、データベースへの接続を管理し、データベースのクエリーと結果を操作し、SQL文をプログラムで構築するためのツールが用意されています。
SQLAlchemy ORM はCore上に構築され、オプションの オブジェクトリレーショナルマッピング 機能を提供します。ORMは、ユーザー定義のPythonクラスをデータベーステーブルやその他の構成体に マッピング できるようにする追加の構成レイヤーと、 Session として知られるオブジェクト持続性メカニズムを提供します。次に、コアレベルのSQL式言語を拡張して、ユーザー定義オブジェクトの観点からSQLクエリを構成し、呼び出すことができるようにします。
このチュートリアルのほとんどの**セクションでは、 **ORMでも明示的に使用されるコア概念について説明しています 。特にSQLAlchemy 2.0は、ORM内でのコアAPI使用の統合レベルが大幅に向上しています。
これらの各セクションには、ORMユーザがこれらのプログラミングパターンをどの程度使用することを期待すべきかを議論する 導入テキスト があります。これらのセクションのSQLAlchemy構文は、 sqlalchemy.orm
構文を同時に使用する可能性がある sqlalchemy
名前空間からインポートされます。主題分類の追加的な指標として、これらのセクションには 左側の薄い明るい境界と右側の厚い暗い境界の両方 が含まれます。コアユーザとORMユーザは、これらのセクションの概念を等しく理解する必要があります。
Tutorial Overview¶
このチュートリアルでは、両方の概念を学習すべき自然な順序で提示します。最初は主にコア中心のアプローチで、次にORM中心の概念に広がります。
このチュートリアルの主なセクションは次のとおりです。:
Establishing Connectivity - the Engine - すべてのSQLAlchemyアプリケーションは
Engine
オブジェクトで始まります。作成方法は次のとおりです。
Working with Transactions and the DBAPI -
Engine
とそれに関連するオブジェクトConnection
およびResult
の使用APIがここに表示されます。この内容はコア中心ですが、ORMユーザは少なくともResult
オブジェクトに精通している必要があります。
Working with Database Metadata - SQLAlchemyのSQL抽象化とORMは、データベーススキーマ構造をPythonオブジェクトとして定義するシステムに依存しています。このセクションでは、コアとORMの両方の観点からそれを行う方法を紹介します。
Working with Data - ここでは、データベース内のデータを作成、選択、更新、削除する方法を学びます。ここでのいわゆる CRUD 操作は、SQLAlchemy Coreの観点から、対応するORMへのリンクとともに提供されます。 Using SELECT Statements で詳細に紹介されているSELECT操作は、CoreとORMに等しく適用されます。
Data Manipulation with the ORM は、ORMのパーシステンスフレームワークをカバーしています。基本的には、ORMを中心とした挿入、更新、削除の方法と、トランザクションの処理方法です。
Working with ORM Related Objects は、
relationship()
構文の概念を紹介し、それがどのように使用されているかの簡単な概要と、より深いドキュメントへのリンクを提供します。
Further Reading は、このチュートリアルで紹介された概念を完全に文書化した、一連の主要なトップレベルの文書セクションをリストしています。
Version Check¶
このチュートリアルは doctest と呼ばれるシステムを使って書かれています。 >>>
で書かれたコードの抜粋はすべて、実際にはSQLAlchemyのテストスイートの一部として実行されます。読者は、独自のPythonインタプリタを使って、リアルタイムで与えられたコード例を使って作業するように招待されています。
例を実行する場合、読者はSQLAlchemyの**バージョン2.0**を使用していることを簡単に確認することをお勧めします。:
>>> import sqlalchemy
>>> sqlalchemy.__version__
2.0.0