gpt4 book ai didi

python - 使用 SQLAlchemy 对现有表进行简单的 SELECT 语句

转载 作者:太空狗 更新时间:2023-10-29 20:31:23 25 4
gpt4 key购买 nike

在 Internet 上没有任何关于 SQLAlchemy 1.0 的简单 SELECT 语句的简单的几行教程。

假设我已经使用 create_engine() 建立了我的数据库连接,并且我的数据库表已经存在,我想知道如何执行以下查询:

select
name,
age
from
users
where
name = 'joe'
and
age = 100

最佳答案

在试图弄清楚同样的事情时发现了这个。

要通过 SQLAlchemy 从表中选择数据,您需要在 SQLAlchemy 中构建该表的表示。如果 Jupyter Notebook 的响应速度有任何迹象,那么在执行查询之前,不会填充该表示(使用现有数据库中的数据)。

您需要Table 来构建一个表。您需要 select 从数据库中选择数据。您需要 metadata... 出于不清楚的原因,即使在 the docs 中也是如此.

from sqlalchemy import create_engine, select, MetaData, Table, and_

engine = create_engine("dburl://user:pass@database/schema")
metadata = MetaData(bind=None)
table = Table(
'table_name',
metadata,
autoload=True,
autoload_with=engine
)

stmt = select([
table.columns.column1,
table.columns.column2
]).where(and_(
table.columns.column1 == 'filter1',
table.columns.column2 == 'filter2'
))

connection = engine.connect()
results = connection.execute(stmt).fetchall()

然后您可以迭代结果。参见 SQLAlchemy query to return only n results?关于如何返回一行或仅几行数据,这对于较慢/较大的查询很有用。

for result in results:
print(result)

我用本地数据库对此进行了检查,SQLAlchemy 结果与原始 SQL 结果不相等。对于我的数据集,不同之处在于数字的格式。 SQL 返回 float64(例如 633.07),而 SQLAlchemy 返回对象(我认为是 Decimal,例如 633.0700000000。)

来自 DataCamp's Introduction to Databases in Python 的一些帮助

关于python - 使用 SQLAlchemy 对现有表进行简单的 SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com