Chapter 5. Running Queries and Updates
SQLAlchemy provides a rich Pythonic interface for constructing SQL
updates and queries, known as the SQL Expression Language. This language is based around the concept of an SQL statement, which represents some
database-independent SQL syntax that may have one or more bind variables,
and that can be executed on an SQL Engine or other
Connectable. This chapter introduces the various
kinds of data manipulation supported by SQLAlchemy (SQL INSERT, UPDATE, and
DELETE) and performed on the query interface (SQL SELECT).
Inserts, Updates, and Deletes
Insert, Update, and
Delete constructs are created in SQLAlchemy via the
Table methods insert, update, and delete, or via the insert, update, and delete functions. The functionality of these
data manipulation language (DML) constructs is equivalent, regardless of whether they are
constructed via methods or functions; the distinction is a question of
style more than substance.
Although each DML construct has its own particulars regarding
construction, they all end up generating a
Statement. We can inspect the SQL text
corresponding to the statement by printing it out:
>>> metadata=MetaData()
>>>
>>> simple_table = Table(
... 'simple', metadata,
... Column('id', Integer, primary_key=True),
... Column('col1', Unicode(20)))
>>>
>>> stmt = simple_table.insert()
>>> print stmt
INSERT INTO simple (id, col1) VALUES (:id, :col1)Note in the previous example that SQLAlchemy has created bind parameters for each of the ...