有没有人知道特定于SQL的模板的工具或库,最好是Python?
我正在寻找Periscope Data的SQL方言中的类似功能,例如automatic joins和SQL代码片段。
我自己可以用各种模板语言来近似这一点,但是如果在设计中考虑到特定于SQL的用例,那就更好了。
还要注意的是,这是用于ORM没有意义的分析用例,编写SQL会更方便。我正在寻找具有select * from [table1+table2]等快捷方式的分析师友好的SQL。
发布于 2017-10-05 23:29:17
我从未使用过潜望镜数据,但看起来您可能正在寻找类似于SQLAlchemy的数据。SQLAlchemy可以与SQLAlchemy对象模型一起使用,也可以不与之一起使用,例如,与SQLAlchemy表达式语言(来自tutorial)一起使用:
stmt = select([users.c.name, addresses.c.email_address]).\
select_from(users.join(addresses)).\
limit(1).offset(1)
result = conn.execute(stmt).fetchall()这相当于运行以下SQL语句:
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)时:
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或automap来内省现有数据库中的表定义模型。
https://stackoverflow.com/questions/46306234
复制相似问题