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 while循环布尔求值   java PdfBox版本文件问题   java如何在安卓应用程序中使用onItemClick?   java在执行shell命令时显示progressbar   非属性(内联)文本值的java OpenAPI注释   面向对象Java与分数   java hibernate为mysql连接创建字符串类型的主键   java Regexp:在XML文件中替换版本号   java变量(varname)可能尚未初始化`   java静态int不会触发删除框架或更改面板   java为非标准浏览器显示警告   java订阅按钮单击,无需内联实现   java JNI_CreateJavaVM()堆栈在最近的Ubuntu 16.04中损坏   java JDBC未将根用户传递给DriverManager。获取连接   java我正在尝试查找一个数字是否为素数,并出现一个错误抛出“参数类型int的运算符&&未定义”   用户代理Java Chromium Embedded 3(JCEF3)移动版本仿真   java在For循环内部执行递归   在java中将对象[]强制转换为引用类型数组   java从JSON字符串设计类