blob: 3242710a928dc4feaba8d5a0ede615bf6052406c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
.. highlight:: pycon+sql
.. |prev| replace:: :doc:`metadata`
.. |next| replace:: :doc:`data_insert`
.. include:: tutorial_nav_include.rst
.. rst-class:: core-header, orm-addin
.. _tutorial_working_with_data:
Working with Data
==================
In :ref:`tutorial_working_with_transactions`, we learned the basics of how to
interact with the Python DBAPI and its transactional state. Then, in
:ref:`tutorial_working_with_metadata`, we learned how to represent database
tables, columns, and constraints within SQLAlchemy using the
:class:`_schema.MetaData` and related objects. In this section we will combine
both concepts above to create, select and manipulate data within a relational
database. Our interaction with the database is **always** in terms
of a transaction, even if we've set our database driver to use :ref:`autocommit
<dbapi_autocommit>` behind the scenes.
The components of this section are as follows:
* :ref:`tutorial_core_insert` - to get some data into the database, we introduce
and demonstrate the Core :class:`_sql.Insert` construct. INSERTs from an
ORM perspective are described in the next section
:ref:`tutorial_orm_data_manipulation`.
* :ref:`tutorial_selecting_data` - this section will describe in detail
the :class:`_sql.Select` construct, which is the most commonly used object
in SQLAlchemy. The :class:`_sql.Select` construct emits SELECT statements
for both Core and ORM centric applications and both use cases will be
described here. Additional ORM use cases are also noted in the later
section :ref:`tutorial_select_relationships` as well as the
:ref:`queryguide_toplevel`.
* :ref:`tutorial_core_update_delete` - Rounding out the INSERT and SELECTion
of data, this section will describe from a Core perspective the use of the
:class:`_sql.Update` and :class:`_sql.Delete` constructs. ORM-specific
UPDATE and DELETE is similarly described in the
:ref:`tutorial_orm_data_manipulation` section.
.. toctree::
:hidden:
:maxdepth: 10
data_insert
data_select
data_update
|