轻量级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第三方库


热门话题
春爪哇。lang.ClassCastException:com。爪哇语。模型DAOUser无法转换为com。爪哇语。刀。用户道   java是ConcurrentHashMap的密钥集迭代器是线程安全的吗?   java上的EmptyStackException   java Android通过多种布局进行导航   java Android将视频从其路径保存到gallery中   html Selenium Java如何搜索和查找给定父元素的特定嵌套元素是相同的   非顺序任务中的Java异常处理(模式/良好实践)   Java:自定义将1个月添加到当前日期   JAVAutil。Observable不遵循GoF的Observable设计模式,对吧?   java有人知道X.509证书中的哪些字段用于验证数字签名吗?   多线程如何在Java中实现同步?   java Spring boot+Thymeleaf+ajax无法向控制器发送VO或DTO   调用IBM Mobilefirst 7.0SAP JCo适配器时发生java错误   java Hibernate搜索在布尔查询中处理null   java如何使用angularJS将共享文件夹文件复制到本地计算机