轻量级SQL数据库,用于管理csv格式的数据

cosevadb的Python项目详细描述


CosevaDB-逗号分隔值DB

CosevaDB是一个轻量级SQL数据库,用于存储、检索和管理csv格式的数据。在

目标是

  • 需要SQL数据库或外部数据库服务器的应用程序
  • 需要轻量级替代未充分利用的重型数据库的应用程序,如oracle、MySQL
  • 那些需要SQL处理器和数据库来管理现有csv数据文件的人

查看www.github.com/ppml38/cosevadb的详细说明

特点:

  • 纯用python编写
  • 无外部依赖项

最好的做法是组织文件夹和csv文件,即下面结构中的数据库和表

database_name/
      table_name.csv
      table_header.csv
      ...

并像下面这样查询数据库

^{pr2}$

然而,这并不是强制性的。您可以传递要解析的任何csv文件的路径。在

如何安装

pip install cosevadb

用法

fromcosevadbimportcosevadbcosevadb.query("select name,age from data/passengers.csv,data/header.csv where native='USA'")

返回格式

[sqlcode,'<message>',[result list / empty list]]

SQL返回代码

SQL CodeDescription
1Empty result set
0Success with atleast one result
-2Unexpected character on position <index>
-3Unexpected character on where clause position <index>
-4Unsupported operator in where clause
-5Non numeric operand with arithmatic operator <operator>
-6Non boolean operand(LHS) with logical operator <operator>
-7Non boolean operand(RHS) with logical operator <operator>
-8Operator ! must be followed by =
-9Unbalanced paranthesis on LHS of operator <operator>
-10Unbalanced paranthesis on RHS of operator <operator>
-11No field <fieldname> found in header file
-12Value for variable <variablename> is missing in atleast one row
-13Where clause condition returns non-boolean result
-14Incomplete condition in where clause

保留字

^{tb2}$

支持的运算符

Operator typeOperators
Arithmatic operators+, -, *, /, %
Comparison operators>, <, >=, <=, =, !=
Logical operators&, |

运算符优先级(从高到低)

Operator precedence
%
/
*
+
-
<,<=
>,>=
!=
=
&
|

文件格式

逗号分隔值(.csv)文件。在

说明书

  • 字符串值应在“<;String>;”内
  • 带有标题(逗号分隔)的文件应与csv数据文件一起传递
  • 到目前为止,只执行了部分操作
  • 使用比较运算符“=”代替“==”
  • Expression evaluation将在您在学校学习时使用BODMAS。i、 与python或java不同,它有单独的操作符优先级。python将返回'7'ex'结果

许可证

麻省理工学院执照。欢迎投稿

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

推荐PyPI第三方库


热门话题
java 安卓阻止编译的第三方库的特定网站   java如何使用带回调的send()方法返回元数据?   将双值数组从一个java类传递到另一个java类   java OracleJava7安装程序返回错误代码   smb共享上新创建的Java文件没有用户,也没有组   打印unicode值而不是字符串的Java程序   java将字符串放在括号中的语法意义   java将对象添加到arraylist,除非它已经存在   java正在尝试查找回文数   java如何解决“过时元素引用:导航到上一页时元素未附加到页面文档”   java从无关方法调用超级方法   用于java代码的socket网络设置,以便不同网络/位置上的两台计算机可以使用RMI   用Java字符数组处理C字符数组