首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中模拟Periscope数据的SQL查询模板

在Python中模拟Periscope数据的SQL查询模板
EN

Stack Overflow用户
提问于 2017-09-20 01:13:23
回答 1查看 413关注 0票数 1

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

我正在寻找Periscope Data的SQL方言中的类似功能,例如automatic joins和SQL代码片段。

我自己可以用各种模板语言来近似这一点,但是如果在设计中考虑到特定于SQL的用例,那就更好了。

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

EN

回答 1

Stack Overflow用户

发布于 2017-10-05 23:29:17

我从未使用过潜望镜数据,但看起来您可能正在寻找类似于SQLAlchemy的数据。SQLAlchemy可以与SQLAlchemy对象模型一起使用,也可以不与之一起使用,例如,与SQLAlchemy表达式语言(来自tutorial)一起使用:

代码语言:javascript
复制
stmt = select([users.c.name, addresses.c.email_address]).\
    select_from(users.join(addresses)).\
    limit(1).offset(1)
result = conn.execute(stmt).fetchall()

这相当于运行以下SQL语句:

代码语言:javascript
复制
SELECT users.name, addresses.email_address
FROM users JOIN addresses ON users.id = addresses.user_id
LIMIT ? OFFSET ?
# data for parameterized query: (1, 1)

或者在使用ORM (来自tutorial)时:

代码语言:javascript
复制
result = session.query(User).join(Address).\
    filter(Address.email_address=='jack@google.com').\
    all()

这相当于下面的SQL查询:

代码语言:javascript
复制
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表定义和/或模型中使用显式定义的关系,但如果您真的想这样做,您可以使用autoloadautomap来内省现有数据库中的表定义模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46306234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档