用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]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用cucumberjvm执行java异步步骤   java通过Jackson2导出/导入JSON文件。9.7   java Tomcat在页面加载时给出500错误   将filereader合并到代码中的java问题   从GUI java将对象属性写入文件时发生swing错误   java简单程序,用于检查输入字符串是否为关键字(指定了关键字)   java如何在布局之间滑动时打开音频文件?   hibernate解析Java。lang.ClassCastException   java如何解决记录测试结果的Jenkins构建错误?   Java:在重写文件之前检查文件是否需要更新的最佳方法是什么?   mongodb在Java中重用数据库连接   java Hibernate(n+1)使用非k连接选择   java如何在Spring批处理中创建JSON文件读取器   java将MuPDF导入Android应用程序   字典我对Java中的多态性有疑问