
一、简介
sqlite3作为一款轻量级的关系型数据库,由于其并发性比较弱的特性,同时写,或者同时读和写,很容易造成死锁,但是可以同时读,所以在工作中经常会用于保存一些不经常变化的配置信息。python提供了sqlite3的接口,下面是一些基础用法。
二、使用
2.1 导入sqlite3包
使用python连接sqlite需要导入python自带的包:
import sqlite3 2.2 连接数据库
连接数据库方法如下:
# 建立和数据库sample.db的连接
conn = sqlite3.connect("sample.db")
# 创建游标以用于执行sql
cursor = conn.cursor() 如果sample.db没有提前建立,在执行连接之后会自动创建数据库文件sample.db;如果已经创建了,会连接目标数据库。
数据库文件后缀可以修改成任意后缀,比如数据库文件修改成”sample1.sss“,也是可以连接并使用的,如下图所示:

2.3 执行sql语句方法
执行sql语句有两种方法:只执行一条语句和执行多条语句
# 可以执行多条语句
cursor.executescript(sql)
# 只能执行一条语句
cursor.execute(sql) 这里执行多条语句指的情况是多条sql语句写在了一个字符串里,如下代码所示:
# 创建三国表
create_sql = """
DROP TABLE IF EXISTS "data";
CREATE TABLE "data" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"name" varchar(20),
"country" varcha(20),
"sex" varchar(4)
);
""" 如果使用cursor.execute(create_sql)调用上面的sql语句,报异常如下,使用executescript可正常运行多条语句:

execute执行多条sql语句
2.4 获取一条查询结果
cursor.execute(sql)
# 获取一条数据
res = cursor.fetchone() 2.5 获取所有查询结果
cursor.execute(sql)
datasets = cursor.fetchall()
有以上几个步骤,数据库的增删查改基本上都可以用了。数据库的增删改操作可以通过execute或者executescript来操作,查询操作可以通过fetchone或fetchall来获取数据。
三、例子
将数据库操作单独写一个工具类比较好,不同项目可以使用同一份SqliteUtils操作工具类,避免重复造轮子。
demo样例:https://gitee.com/atiaisi/py_learn/blob/master/10_DataBaseOperation/10_01_sqlite.py
四、参考资料
sqlite3官方文档:https://docs.python.org/2/library/sqlite3.html