用sql编写查询。
sql-quer的Python项目详细描述
#SQL查询
sql是一种非常棒的语言,是世界上最成功的编程语言之一。我们应该使用它,而不是试图用定制的dsl来取代它。
然而,在构造sql查询时,有两件事是很好的帮助:
- dialect-aware-safe-value-substitution:每个数据库接口都有自己的语法来安全地替换值(不允许sql注入)-例如,$1或?或:varname。它们对sql+values参数列表的格式也有不同的要求。我希望能够使用相同的值替换语法编写查询,而不管我使用的是哪一个数据库接口,并且知道sql将正确地为我的接口输出,并且这些值将安全地传递到数据库引擎。
- dynamic attributes:在许多应用程序中,我事先不知道要选择、插入、更新或筛选哪些属性。我想选择一个给定的属性列表,或者过滤一个给定的键/值映射,或者更新或插入特定的属性,而不必重写sql查询。
- 块组合:有些sql查询非常复杂。我希望能够将SQL块组合成更大的查询,这样我就可以有效地管理这种复杂性。(大多数数据库查询dsl无法处理复杂的查询,或者他们发明了一种难以学习的语言来编写这些查询。学习sql是更好地利用我们的时间,但是在管理/操作查询中的不同块方面有一些帮助将非常有帮助。)
请看SQL查询:[过时]
- 一个类,sql,有一个字段,query,还有一个方法,.render,它接受一个可选参数,方言。
- 动态值替换,以支持的方言之一呈现:PostgreSQL($1)、SQLAlchemy(:varname)、Embedded(:varname)、MySQL(%(varname)s)、SQLite(?)。默认样式为:varname。
- 通过在选择、位置、插入和更新语法中动态属性/值列表???[tbd]
- 通过?进行块组合???[tbd]