之前没有接触过sqlite数据库,只是听到同事聊起这个。
有一次,手机端同事让我帮着写个sql,后面说运行不了报错了,我问是什么数据库,同事说是sqlite,这才知道了还有sqlite这个数据库。。。
接下来说说python连接sqlite数据库,非常简单,因为python中的sqlite模块也遵循了DB-API 2.0的规范,所以操作起来和sql server、mysql、oracle数据库都是一样的。
一、在 Windows 上安装 SQLite:
(1)请访问 SQLite 下载页面,从 Windows 区下载预编译的二进制文件:http://www.sqlite.org/download.html
(2)因为我的win 7是64位的,所以下载 sqlite-shell-win64-*.zip 和 sqlite-dll-win64-*.zip 压缩文件,如果你的系统是32位的就下载32位的版本。
(3)创建文件夹 C:sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。
(4)添加 C:sqlite 到 PATH 环境变量,最后在命令提示符下,使用 sqlite3 命令,将显示如下结果:
C:UsersAdministrator>sqlite3 SQLite version 3.15.2 2016-11-28 19:13:37 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite>
二、创建一个数据库test.db
直接用命令行sqlite3创建数据库,然后用命令.database 查询系统中的数据库。
C:UsersAdministrator>sqlite3 test.db SQLite version 3.15.2 2016-11-28 19:13:37 Enter ".help" for usage hints. sqlite> .database seq name file --- --------------- ---------------------------------------------------------- 0 main C:UsersAdministrator est.db
注意:不要退出,因为接下来python要连接数据库(最后关闭数据库时,可以用.quit 命令退出sqlite3)。
三、python连接sqlite3
python中内置了sqlite模块,所以不需要安装,导入后就可以直接用。
需要特别注意的是,要把编写好的程序文件放到 test.db数据库相同的目录,这里是:C:UsersAdministrator,否则会发现程序中会创建一个新的test.db,并且是在当前程序运行的目录下,就查看不到数据库的变化了。
# -*- coding:gbk -*- import sqlite3 conn = sqlite3.connect('test.db') cur = conn.cursor() cur.execute('create table t(id int,v varchar(20));'); cur.execute("insert into t values(%d,'%s')" % (1,'xxx')) cur.execute("insert into t values(%d,'%s')" % (2,'yyy')) cur.execute("update t set v = '%s' where id = %d" % ('zzz',2)) cur.execute("select * from t;") results = cur.fetchall() for row in results: print row conn.commit() cur.close() conn.close()
每条数据都是一个元祖,所有记录组成了一个列表。
输出结果:
================ RESTART: C:UsersAdministratorDesktop .py ================ (1, u'xxx') (2, u'zzz')
代码非常简单,其实python连接sqlite3就是这么的简单