【python】sqlite3基础使用
阿提艾斯
2022年08月21日 18:15
收录于文集
共45篇

一、简介

    sqlite3作为一款轻量级的关系型数据库,由于其并发性比较弱的特性,同时写,或者同时读和写,很容易造成死锁,但是可以同时读,所以在工作中经常会用于保存一些不经常变化的配置信息。python提供了sqlite3的接口,下面是一些基础用法。

二、使用

2.1 导入sqlite3包

使用python连接sqlite需要导入python自带的包:

代码块
Python
自动换行
复制代码
import sqlite3
复制成功

2.2 连接数据库

连接数据库方法如下:

代码块
Python
自动换行
复制代码
# 建立和数据库sample.db的连接
conn = sqlite3.connect("sample.db")
# 创建游标以用于执行sql
cursor = conn.cursor()
复制成功

如果sample.db没有提前建立,在执行连接之后会自动创建数据库文件sample.db;如果已经创建了,会连接目标数据库。

数据库文件后缀可以修改成任意后缀,比如数据库文件修改成”sample1.sss“,也是可以连接并使用的,如下图所示:

2.3 执行sql语句方法

执行sql语句有两种方法:只执行一条语句和执行多条语句

代码块
JavaScript
自动换行
复制代码
# 可以执行多条语句
cursor.executescript(sql)
# 只能执行一条语句
cursor.execute(sql)
复制成功

这里执行多条语句指的情况是多条sql语句写在了一个字符串里,如下代码所示:

代码块
JavaScript
自动换行
复制代码
# 创建三国表
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 获取一条查询结果

代码块
JavaScript
自动换行
复制代码
cursor.execute(sql)
# 获取一条数据
res = cursor.fetchone()
复制成功

2.5 获取所有查询结果

代码块
JavaScript
自动换行
复制代码
cursor.execute(sql)
datasets = cursor.fetchall()
复制成功

有以上几个步骤,数据库的增删查改基本上都可以用了。数据库的增删改操作可以通过execute或者executescript来操作,查询操作可以通过fetchonefetchall来获取数据。

三、例子

将数据库操作单独写一个工具类比较好,不同项目可以使用同一份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