Schema Definition Language¶
このセクションでは、データベース・スキーマを記述および統合する包括的なシステムであるSQLAlchemy schema metadata を参照します。
SQLAlchemyのクエリーおよびオブジェクト・マッピング操作のコアは、テーブルやその他のスキーマ・レベルのオブジェクトを記述するPythonオブジェクトで構成される*database metadata*によってサポートされています。これらのオブジェクトは、CREATE文とDROP文( DDL と呼ばれる)の発行、SQLクエリーの構築、データベース内にすでに存在する構造に関する情報の表現という3つの主要なタイプの操作のコアとなっています。
データベースメタデータは、 Table
, Column
,:class:~SQLAlchemy.schema.ForeignKey , Sequence
のような構成体を使って、さまざまなコンポーネントとそのプロパティに明示的に名前を付けることで表現できます。これらはすべて SQLAlchemy.schema
パッケージからインポートされます。また、 reflection と呼ばれるプロセスを使ってSQLAlchemyで生成することもできます。つまり、 Table
のような単一のオブジェクトから始めて、それに名前を割り当て、その名前に関連するすべての追加情報を特定のエンジンソースからロードするようにSQLAlchemyに指示します。
A key feature of SQLAlchemy’s database metadata constructs is that they aredesigned to be used in a declarative style which closely resembles that ofreal DDL. They are therefore most intuitive to those who have some backgroundin creating real schema generation scripts.
SQLAlchemyのデータベース・メタデータ構成体の重要な特徴は、実際のDDLと非常によく似た 宣言型 スタイルで使用するように設計されていることです。
- Describing Databases with MetaData
- Reflecting Database Objects
- Column INSERT/UPDATE Defaults
- Scalar Defaults
- Python-Executed Functions
- Client-Invoked SQL Expressions
- Server-invoked DDL-Explicit Default Expressions
- Marking Implicitly Generated Values, timestamps, and Triggered Columns
- Defining Sequences
- Computed Columns (GENERATED ALWAYS AS)
- Identity Columns (GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY)
- Default Objects API
- Defining Constraints and Indexes
- Customizing DDL