最近在做app客户端数据库的同步自动化,借此机会结合Python和ADB来说说SQLite的使用。
首先从几个方面大致介绍下SQLite的特点:
轻量级
SQLite 便于管理,只有单个文件,如果想要在别处使用此数据库文件,也只需要复制到U盘或者存放到云端即可。
其次配置同样简单,无须安装,构建相应的库,然后在建立数据库连接时配置运行时选项即可。
快速
SQLite速度非常快,它运行在同一台机器上,这使得查询和索引不需要任何连接协议和网络成本。
稳定性
由于逐渐成为db的黑马,大量优秀的dev都在为SQLite开发新功能和性能调优,并且很少有bug。
可扩展性
SQlite是应用嵌入式的,它与应用运行在同一地址空间中,并能代表你执行应用代码。在Python的标准库中就提供了非常全面的API。
总结:所以SQLite在嵌入式设备的数据存储中已经扮演了重要角色,在web app和服务端中大家不妨也尝试一下,之后的Blog我会结合Django来部署一个非常快捷的web服务。
言归正传,我们从安装说起:
windows安装:
下载:http://www.sqlite.org/download.html
新建C:\sqlite,配置为path环境变量
复制sqlite3.def、sqlite3.dll 和 sqlite3.exe至此路径
如图:
DONE!
Linux安装:
几乎所有版本的Linux都自带SQLite3,check下即可
DONE!
使用adb命令查看数据库:
前提条件: Android必须要越狱,获取root权限
1. 在命令行窗口输入adb shell回车,就进入了Linux命令行,现在就可以使用Linux的命令了。
2. ls回车,显示所有的东西,其中有个data。
3. cd data回车,再ls回车,cd data回车,ls回车后就会看到很多的com................,那就是系统上的应用程序包名,找到你数据库程序的包名,然后进入。
4.进去后在查看所有,会看到有databases,进入databases,显示所有就会发现你的数据库名字,这里使用的是"stu_db"。
5.sqlite3 stu_db回车就进入了你的数据库了,然后“.schema”就会看到该应用程序的所有表及建表语句。
6.之后就可以使用标准的SQL语句查看刚才生成的数据库及对数据执行增删改查了。
下面介绍几个在SQLite中常用到的adb命令:
查看
.database 显示数据库信息;
.tables 显示表名称;
.schema 命令可以查看创建数据表时的SQL命令;
.schema table_name 查看创建表table_name时的SQL的命令;
插入记录
insert into table_name values (field1, field2, field3...);
查询
select * from table_name;查看table_name表中所有记录;
select * from table_name where field1='xxxxx'; 查询符合指定条件的记录;
删除
drop table_name; 删除表;
drop index_name; 删除索引;
Python对于sqlite3的支持
SQLite3 可使用 sqlite3 模块与 Python 进行集成。sqlite3 模块是由 Gerhard Haring 编写的。它提供了一个与 PEP 249 描述的 DB-API 2.0 规范兼容的 SQL 接口。您不需要单独安装该模块,因为 Python 2.5.x 以上版本默认自带了该模块。
连接数据库
#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
所有的增删改查都很简单,请查看:
http://www.runoob.com/sqlite/sqlite-python.html