sqloose是一种不那么严格的sql,它允许范围和负索引。

sqloose的Python项目详细描述


sqloose是一种类似sql的查询语言,它直接映射到sql。此模块不实现 数据库本身,但它是从sqloose到sql的转换程序。

安装

pip安装python sqloose

用法

fromsqlooseimportsqloosesql=sqloose.to_sql("SELECT age, race, gender, count(*) AS num FROM stats GROUP BY [1:3] ORDER BY -1 DESC")

用例

sqloose被设计成一个不那么僵硬的sql,提供了一个更方便的语法。尤其是 允许在GROUP BY和ORDER BY语句中使用范围和负索引。正确的索引 在该范围内指定最终项,这与python不同,python的最终项是正确的索引+ 一。

使用以下SQL语句:

SELECTage,race,gender,count(*)ASnumFROMstatsGROUPBY1,2,3ORDERBY4DESC

在sqloose中,这可以用多种方式表示,例如:

SELECTage,race,gender,count(*)ASnumFROMstatsGROUPBY[1:3]ORDERBY-1DESCSELECTage,race,gender,count(*)ASnumFROMstatsGROUPBY[:3]ORDERBY-1DESCSELECTage,race,gender,count(*)ASnumFROMstatsGROUPBY[:-2]ORDERBY-1DESC

此外,sqloose定义了group to和group through结构,可以在同一个 情景:

SELECTage,race,gender,count(*)ASnumFROMstatsGROUPTO-1ORDERBY-1DESCSELECTage,race,gender,count(*)ASnumFROMstatsGROUPTO4ORDERBY-1DESCSELECTage,race,gender,count(*)ASnumFROMstatsGROUPTHROUGH3ORDERBY-1DESC

sql通常以交互方式使用,在这种方式中,数据是被探索的,而不是简单地被 聚集。查询是被发现的,而不是天生就知道的。这种模式通常包括 查看聚合(计数、总和、平均值),同时更改列的选择和 深入挖掘最有意义的见解。使用这种模式的失败之处在于 必须更改查询的开始(列列表)和接近结束(分组索引)。 通过扩展sql语法使之更具表现力,这在很大程度上是不必要的。

sqloose不会验证sql的正确性,但会验证 特定于sqloose的构造,包括group to和group的范围和用法 通过。

0.1.0A1(2016-09-25)

  • github上的第一个预发行版。

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

推荐PyPI第三方库


热门话题
java如何将jasper集成到jhipster项目中   java无法忽略lombok注释   关于tomcat日志的java问题   java@Autowired未设置字段>NullPointerException   GUI提交按钮不工作   java气泡和选择排序   java如何编写规则来匹配两个数组?   java如何找出某个字符在字符串中的第一次、第二次或第三次出现?   java通过字符串引用id   javascript在网络视图中加载在线图表   java保留web应用程序中用户更改的日志   在安卓中尝试使用Mandrill SMTP发送电子邮件时出现java错误   用java语言将a2b4c5等字符串转换为AABBCCCCC的程序是什么?   java无需TODO即可删除所有注释   java JMX MBean在应用程序部署时自动注册   java如何使用JSON解析从任何url解析数据   java@transactional注释类使用代理包装,但未创建事务   JavaFx转换和打印