Release: 1.2.19 | Release Date: April 15, 2019

# SQLAlchemy 1.2 Documentation

# Declarative

The Declarative system is the typically used system provided by the SQLAlchemy ORM in order to define classes mapped to relational database tables. However, as noted in Classical Mappings, Declarative is in fact a series of extensions that ride on top of the SQLAlchemy `mapper()` construct.

While the documentation typically refers to Declarative for most examples, the following sections will provide detailed information on how the Declarative API interacts with the basic `mapper()` and Core `Table` systems, as well as how sophisticated patterns can be built using systems such as mixins.

- Basic Use
  - Defining Attributes
  - Accessing the MetaData
  - Class Constructor
  - Mapper Configuration
  - Defining SQL Expressions
- Configuring Relationships
  - Configuring Many-to-Many Relationships
- Table Configuration
  - Using a Hybrid Approach with __table__
  - Using Reflection with Declarative
- Inheritance Configuration
  - Joined Table Inheritance
  - Single Table Inheritance
  - Concrete Table Inheritance
- Mixin and Custom Base Classes
  - Augmenting the Base
  - Mixing in Columns
  - Mixing in Relationships
  - Mixing in deferred(), column_property(), and other MapperProperty classes
  - Mixing in Association Proxy and Other Attributes
  - Controlling table inheritance with mixins
  - Mixing in Columns in Inheritance Scenarios
  - Combining Table/Mapper Arguments from Multiple Mixins
  - Creating Indexes with Mixins
- Declarative API
  - API Reference