开始使用免费开始使用

使用 SQLAlchemy 从表中选择数据

到目前为止,做得非常好!现在是用 SQLAlchemy 构建您的第一个 select 语句的时候了。SQLAlchemy 提供了与数据库交互的地道 Python 方式。当您在上一个练习中使用原生 SQL 时,是直接对数据库进行查询。而使用 SQLAlchemy 时,您将通过一个 Table 对象进行操作,SQLAlchemy 会为您将查询翻译成合适的 SQL 语句。这样,您无需处理诸如 MySQL 或 PostgreSQL 等传统 SQL 方言之间的差异,就可以利用 SQLAlchemy 的 Python 框架来简化工作流程,更高效地查询数据。正因为如此,即使您已经熟悉传统 SQL,也值得学习它。

在本练习中,您将再次构建一个语句来查询 census 表中的所有记录。但这一次,您将使用 sqlalchemy 模块的 select() 函数。该函数要求将表或列组成的列表作为唯一必需参数,例如:select([my_table])

您还将通过在 .fetchmany() 中传入 size 参数,仅获取少量 ResultProxy 中的记录,以指定要获取的记录数。

TableMetaData 已经导入。元数据可通过 metadata 获取,与数据库的连接为 connection

本练习是课程的一部分

Python 中的数据库入门

查看课程

练习说明

  • sqlalchemy 模块导入 select
  • 反射 census 表。此代码已为您写好。
  • 使用 select() 函数创建一个查询,检索 census 表中的所有记录。为此,请向 select() 传入一个只包含单个元素 census列表
  • 打印 stmt 以查看实际生成的 SQL 查询。此代码已为您写好。
  • census 表中获取 10 条记录并将其存入 results。为此:
    • connection 上使用 .execute() 方法,并以 stmt 作为参数以获取 ResultProxy。
    • connection.execute(stmt) 上使用带有合适 size 参数的 .fetchmany() 以获取 ResultSet。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import select
from ____ import ____

# Reflect census table via engine: census
census = Table('census', metadata, autoload=True, autoload_with=engine)

# Build select statement for census table: stmt
stmt = ____

# Print the emitted statement to see the SQL string
print(stmt)

# Execute the statement on connection and fetch 10 records: result
results = ____.____(____).____(size=___)

# Execute the statement and print the results
print(results)
编辑并运行代码