从表中选择数据:原生 SQL
正如您在视频中看到的,要访问并操作数据库中的数据,首先需要通过在 engine 上调用 .connect() 方法来建立连接。这是因为您之前使用的 create_engine() 函数返回的是一个 engine 实例,但它并不会真正打开连接,除非调用需要连接的操作,例如查询。
利用我们刚学到的 SQL,并在连接上应用 .execute() 方法,您可以使用原生 SQL 查询来获取 census 表中的所有记录。.execute() 方法返回的对象是 ResultProxy。在这个 ResultProxy 上,您可以调用 .fetchall() 方法来获取结果——也就是 ResultSet。
在本练习中,您将使用传统的 SQL 查询。请注意,当您使用原生 SQL 执行查询时,您是直接在数据库中查询该表。尤其是不需要进行反射步骤。
在下一个练习中,您将转向使用 SQLAlchemy,并开始了解它的优势。加油!
本练习是课程的一部分
Python 中的数据库入门
练习说明
- 使用
engine的.connect()方法创建一个连接。 - 构建一条 SQL 语句以查询
census的所有列,并将其存入stmt。注意,SQL 语句必须是一个字符串。 - 在
connection上使用.execute()和.fetchall()方法,并将结果存入results。记住.execute()要先于.fetchall(),且需要将stmt传给.execute()。 - 打印
results。
交互式实操练习
通过完成这段示例代码来试试这个练习。
from sqlalchemy import create_engine
engine = create_engine('sqlite:///census.sqlite')
# Create a connection on engine
connection = ___
# Build select statement for census table: stmt
stmt = ____
# Execute the statement and fetch the results: results
results = ____
# Print results
print(____)