配置Python环境的方法在我的博客中已经详细介绍。
一、SQLite和PySQLite
在最近的Python版本中(从2.5开始),SQLite的优势在于它的一个包装(PySQLite)已经被包括在标准库内。SQLite在Python中的模块名称为“sqlite3”,我们可以在Python环境下通话命令import sqlite3
验证Pyhton标准库中是否含有此模块。
如上图所示输入命令后无任何错误提示,便可以直接调用。
如果出现大量错误信息,可能是安装脚本找不到所需文件。确保你知道库文件和include文件安装路径,将它们显示地提供给安装脚本。假设我在/home/mlh/sqlite/current目录中原地编译SQLite,那么头文件应该可以在/home/mlh/sqlite/current/src和/home/mlh/sqlite/current/build/lib中找到。为了让安装程序能使用这些路径,需要编辑安装脚本setup.py。在这个文件中可以设定变量include_dirs和library_dirs:
include_dirs = ['/home/mlh/sqlite/current/src']
library_dirs = ['/home/mlh/sqlite/current/build/lib']
在重新绑定变量之后,刚才说过的安装过程应该可以正常进行了。
二、Python与SQLite建立连接
将SQLite作为一个模块导入,模块名称为sqlite3(如果使用的是标准库)。之后可以创建一个到数据库文件的连接——如果文件不存在就会自动生成——通过提供一个文件名(可以是文件的绝对路径或相对路径):
import sqlite3
conn = sqlite3.connect('F:/test/data.db')
之后就能获得连接的游标:
curs = conn.cursor()
这个游标可以用来执行SQL查询。完成查询并且做出某些更改后确保已经进行了提交,这样才可以将这些修改真正的保存到文件中:
conn.commit()
可以在每次修改数据后都进行提交,准备关闭数据库时,使用close方法:
conn.close()
三、读出SQLite数据库中的表“demo”的信息
1、在SQLite数据库中创建一张表“demo”,使用SQL语句创建。
程序代码:
/*创建表名为"demo"的表结构*/
create table demo(id integer not null primary key, names text not null, sex text not null, age integer not null);
/*在表中添加数据*/
insert into demo(names,sex,age) values('张三','男',23),('李四','女',18),('王五','男',20),('赵六','男',25);
2、先建立起与“data.db”数据库的连接,再进行SQL语句查询。
程序代码:
# -*- coding: UTF-8 -*-
import sqlite3 #输入sqlite3模块
import json #输入json模块
import re #输入re模块
conn = sqlite3.connect('F:/test/data.db') #连接数据库“data”
curs = conn.cursor() #返回连接的游标对象
query = 'SELECT * FROM demo' #SQL语句查询表“demo”
information = curs.execute(query)
print ' ','name','sex','age'
for inf in information: #循环输出列表“demo”的每行内容
#使用json方法将“unicode”格式打印成中文
#使用re文法将“[]”去掉
inf1 = re.sub(r'["[",\]]', '', json.dumps(inf).decode('unicode-escape'))
inf2 = re.sub(r'[""",\"]', '', inf1) #使用re方法将“ “” ”去掉
print inf2
conn.close() #关闭数据库
运行结果: