轻量级sqlite接口

dbtools的Python项目详细描述


#dbtools
一个到sqlite数据库的简单接口。

*[文档](http://jhamrick.github.io/dbtools/)
*[github](https://github.com/jhamrick/dbtools/)
*[pypi](https://pypi.python.org/pypi/dbtools)

概述

lite数据库。
受[ipython sql]启发(https://pypi.python.org/pypi/ipython sql),
`dbtools`返回
[pandas dataframe](http://pandas.pydata.org/pandas docs/stable/dsintro.html dataframe)
来自"select"查询的对象,并可以处理其他sql语句的基本形式(`create`","insert","update","delete","drop")。


目标是*不*复制
[sqlalchemy]的全部功能(http://www.sqlalchemy.org/)或真正用于
对象关系映射。这意味着更多地用于
科学数据收集(例如行为实验),因为
方便地访问健壮的存储形式。

ly,您可以克隆存储库并从源代码安装:

``bash
git clone git@github.com:jhamrick/dbtools.git
cd dbtools
python setup.py install
````

`.so,"make install"相当于"python setup.py install"。您可以使用您喜欢的任何一个。


[('id',int),
…('name',str),
…("年龄",国际),
…('height',float)],
…主键'id',
…autoincrement=true)
>;>;tbl
用户(id integer主键autoincrement,name text,age integer,height real)
>;类型(tbl)
<;类"dbtools.table.table">;
````

n
>;>;tbl=表("data.db","people")
>;>;tbl
人员(id整数主键自动递增,姓名文本,年龄整数,身高实数)
>;>;tbl.列
(u'id',u'name',u'age',u'height')
>;tbl.主键
u'id'
>;>;tbl.autoinc记住
true
```

25 66.24
>;>;类型(tbl.select())
<;类"pandas.core.frame.dataframe">;
`````

>使用字典插入:

```python
>;>;tbl.insert({
…)姓名':'ben bitdidle',
…'年龄:24岁,
…高度:70.1})
>;>tbl.select()
name age height
id
1 alyssa p.hacker 25 66.24
2 ben bitdidle 24 70.10
````

.

\select

可以使用切片来选择行(但仅当主键
列是整数和自动递增时)。注意,由于sqlite
数据库是一个索引,索引第0个元素将返回一个
空的"dataframe"。

``python
>;>tbl[1]
name age height
id
1 alyssa p.hacker 25 66.24
>;name age height
id
2 ben bitdidle 2470.1
````

把它们当作列名来吃,然后选择那些列:

``python
>;>tbl['name','height']
name height
id
1 alyssa p.hacker 66.24
2 ben bitdidle 70.10
``

通过指定"where"关键字参数(您可以使用"?`
非信任输入的"sqlite3"库语法:

`` python
>;>tbl.select(where='age>;24')
name age height
id
1 alyssa p.hacker 25 66.24
>;>tbl.select(columns=['name','height',where=('age>;?',24))
名称高度
id
1 alyssa p.hacker 66.24
`````

ct`指定应更新哪些数据的方法。

``python
>;>tbl.update({age:26},其中:'id=1')
>;>tbl.select()
name age height
id
1 alyssa p.hacker 26 66.24
2 ben bitdidle 24 70.10
```

###删除

删除一行或多行需要指定"where"关键字参数
,如"select"和"update"(如果未指定,则所有行都将被删除)。

``python
>;>tbl.delete(where='height<;70')
>;>tbl.select()
ight
id
2 ben bitdidle 2470.1
```

当然,这意味着以后无法访问它,因为它不再存在。

``python
>;>tbl.drop()
>;>tbl.select()
traceback(最近的一次调用):
file"<;stdin>;",第1行,in<;module>;
file"dbtools/table.py",第339行,in选择
cur.execute(*cmd)
sqlite3.operational错误:没有这样的表:people
```

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

推荐PyPI第三方库


热门话题
junit cucumber为什么会找到“runTest.java”来运行测试?   在Eclipse中找不到java KeyPairGenerator   java NotSerializableException即使在实现Serializable之后   noclassdeffounderror(java字符串连接)为什么会出现这种异常?   java Guice:将接口绑定到由动态代理创建的实例   使用Spring数据neo4j创建空间索引时发生java错误   java对于需要在50多个excel文件上运行并且每个文件平均包含25k行的项目,最佳的方法是什么   javaNIO中的java缓冲区写入/发送消息问题   如何在Java/eclipse中添加不调用super()的警告   JavaSpring:mvcUrl映射错误的id   java应该在getInstance或构造函数中使用Init方法吗?   安卓中的java空指针异常错误   java Jsoup不能完全获取原始html代码