Python中模拟Periscope D的SQL查询模板

2024-05-16 04:11:34 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有人知道一个用于SQL特定模板的工具或库,最好是Python?在

我正在潜望镜数据的SQL方言中寻找类似的功能,例如automatic joins和SQL片段。在

我自己可以用各种模板语言(比如Jinja)来近似实现这一点,但是如果有一些东西是在考虑特定于SQL的用例的情况下设计的,那就太好了。在

还要注意,这是针对ORM没有意义的分析用例,编写SQL会更方便。我正在寻找类似select * from [table1+table2]等快捷方式的分析师友好的SQL


Tags: 工具数据功能模板语言sqlorm情况
1条回答
网友
1楼 · 发布于 2024-05-16 04:11:34

我从未使用潜望镜数据,但看起来你可能在寻找类似SQLAlchemy的东西。SQLAlchemy可以与SQLAlchemy ORM一起使用,也可以不使用它,例如使用SQLAlchemy表达式语言(fromtutorial):

stmt = select([users.c.name, addresses.c.email_address]).\
    select_from(users.join(addresses)).\
    limit(1).offset(1)
result = conn.execute(stmt).fetchall()

相当于运行以下SQL语句:

^{pr2}$

或者使用ORM时(从tutorial):

result = session.query(User).join(Address).\
    filter(Address.email_address=='jack@google.com').\
    all()

相当于此SQL查询:

SELECT users.id AS users_id,
        users.name AS users_name,
        users.fullname AS users_fullname,
        users.password AS users_password
FROM users JOIN addresses ON users.id = addresses.user_id
WHERE addresses.email_address = ?
# data for parameterized query: ('jack@google.com',)

SQLAlchemy可以根据表定义和/或模型上配置的外键关系猜测自动联接条件。在

通常,SQLAlchemy不会内省预先存在的表上的关系,而是在SQLAlchemy表定义和/或模型中使用显式定义的关系,但是如果您真的想这样做的话,您可以使用autoload或{a4}来从现有数据库中内省表定义模型。在

相关问题 更多 >