description of each of the concepts being illustrated here.
-Step One - Declare Models
-==========================
+Declare Models
+---------------
Here, we define module-level constructs that will form the structures
which we will be querying from the database. This structure, known as a
More on table metadata and an intro to ORM declared mapping is in the
Tutorial at :ref:`tutorial_working_with_metadata`.
-Step Two - Create an Engine
-============================
+Create an Engine
+------------------
+
The :class:`_engine.Engine` is a **factory** that can create new
database connections for us, which also holds onto connections inside
A full intro to the :class:`_engine.Engine` starts at :ref:`tutorial_engine`.
-Step Three - Emit CREATE TABLE DDL
-==================================
+Emit CREATE TABLE DDL
+----------------------
+
Using our table metadata and our engine, we can generate our schema at once
in our target SQLite database, using a method called :meth:`_schema.MetaData.create_all`:
overview of what's going on on with Table metadata, proceed in the
Tutorial at :ref:`tutorial_working_with_metadata`.
-Step Four - Create Objects and Persist
-======================================
+Create Objects and Persist
+---------------------------
We are now ready to insert data in the database. We accomplish this by
creating instances of ``User`` and ``Address`` objects, which have
Then, some varieties of basic persistence operations are introduced
at :ref:`tutorial_inserting_orm`.
-Step Five - Simple SELECT
-==========================
+Simple SELECT
+--------------
With some rows in the database, here's the simplest form of emitting a SELECT
statement to load some objects. To create SELECT statements, we use the
More detail on how to select objects and individual columns is at
:ref:`tutorial_selecting_orm_entities`.
-Step Six - SELECT with JOIN
-===========================
+SELECT with JOIN
+-----------------
It's very common to query amongst multiple tables at once, and in SQL
the JOIN keyword is the primary way this happens. The :class:`_sql.Select`
Some more background on the concepts above are at
:ref:`tutorial_select_where_clause` and :ref:`tutorial_select_join`.
-Step Seven - Make Changes
-=========================
+Make Changes
+------------
The :class:`_orm.Session` object, in conjunction with our ORM-mapped classes
``User`` and ``Address``, automatically track changes to the objects as they
A detailed walkthrough on ORM data manipulation starts at
:ref:`tutorial_orm_data_manipulation`.
-Step Eight - Some Deletes
-=========================
+Some Deletes
+------------
All things must come to an end, as is the case for some of our database
rows - here's a quick demonstration of two different forms of deletion, both
Background on object expiration is at :ref:`session_expiring`; cascades
are discussed in depth at :ref:`unitofwork_cascades`.
-Step Nine - Learn the above concepts in depth
-=============================================
+Learn the above concepts in depth
+---------------------------------
For a new user, the above sections were likely a whirlwind tour. There's a
lot of important concepts in each step above that weren't covered. With a