Python连接SQLite数据库完整指南:内存与硬盘模式及CRUD操作

沈亦白
沈亦白
发布时间:2026-10-14 | 3人浏览过
原创

本文详解Python中sqlite3模块的使用,涵盖建立内存与硬盘数据库的区别、表结构创建、数据插入、查询及删除操作。通过具体代码示例,演示如何连接数据库、使用游标执行SQL语句、提交事务及关闭连接,帮助开发者快速掌握轻量级数据库的基础操作。

1. 建立与SQLite数据库的连接

SQLite是Python内置的开源关系型轻量级数据库,支持基于内存或硬盘存储。由于无需额外下载安装数据库软件或驱动程序,Python可通过内置模块直接调用,其模块路径通常位于Python安装目录下的Lib/sqlite3/中。

对关系型数据库进行读写操作,通常需遵循以下标准流程:

  • 第一步,建立应用系统与数据库的连接;
  • 第二步,创建数据库实例,即生成一个用于存储数据的文件;
  • 第三步,定义并建立相应的表结构;
  • 第四步,向表中写入记录或读取已有记录;
  • 第五步,操作完成后关闭数据库连接。

1.1 建立基于内存的数据库


import sqlite3   #导入sqlite3模块
conn = sqlite3.connect(":memory:")     #建立一个基于内存的数据库
conn.close()        #关闭与数据库的连接

建议在完成数据库操作后及时关闭连接,以避免因连接数过多而消耗内存资源。

1.2 建立基于硬盘的数据库


import sqlite3   #导入sqlite3模块
conn = sqlite3.connect("First.db")     #建立一个基于硬盘的数据库实例
conn.close()        #关闭与数据库的连接

效果:

执行上述代码后,Python安装路径下会生成名为First.db的数据库文件。

1.3 基于内存和基于硬盘的区别

基于内存的数据库在关机或突发事故时容易丢失数据,而基于硬盘的数据可持久保存。内存数据库读写速度较快,但存储容量受可用内存限制;硬盘数据库读写速度相对较慢,但存储容量取决于硬盘剩余空间。

2. 在指定数据库里建立表结构

在关系型数据库中,必须创建具有关系特征的表结构,才能向表中写入数据并执行数据库操作。

将以下二维结构化记录表依次存入数据库表中。


创建对应的数据库表需定义钓鱼日期、名称、数量、价格、备注五个字段。各字段值需确定数据类型:数量为整数,价格为浮点数,钓鱼日期、名称、备注为字符型。

2.1 建立数据库表结构


import sqlite3   #导入sqlite3模块
conn = sqlite3.connect("First.db")     #建立一个基于硬盘的数据库实例
cur = conn.cursor()         #通过建立数据库游标对象,准备读写操作
cur.execute("Create table T_fish(date text,name text,nums int,price real,Explain text)")  #根据上表结构建立对应的表结构对象
cur.execute("insert into T_fish Values('2018-3-28','黑鱼',10,28.3,'tom')")    #插入一行记录结果信息
conn.commit()   #保存提交,确保数据保存成功
conn.close()        #关闭与数据库的连接

在First.db数据库中创建T_fish表,插入一行记录,提交保存并关闭数据库连接。

  • 建立数据库表采用标准SQL命令方法,在数据库中创建对应的T_fish表。
  • 插入一行记录,通过游标的execute()方法,利用SQL的insert命令向T_fish表执行一条插入语句;可连续多次调用execute()方法以执行多条SQL语句。
  • 提交保存,在对数据库进行写操作时,最后必须调用Connection对象的commit()方法,才能将数据真正提交到数据库中,否则可能导致数据丢失。

游标用于指向特定数据库的某张表,只有建立了确定的表指向关系,才能进行插入、修改、删除、查找等操作。

2.2 查找数据


import sqlite3
conn = sqlite3.connect("First.db")   #连接数据库
cur = conn.cursor()        #创建关联数据库的游标实例
cur.execute("select * from T_fish")  #对T_fish表执行数据查找命令
for row in cur.fetchall():      #以一条记录为元组单位返回结果给row
    print(row)
conn.close()   #关闭数据库

效果:

2.3 删除数据


import sqlite3
conn = sqlite3.connect("First.db")    #连接数据库
cur = conn.cursor()         #创建游标实例
cur.execute("insert into T_fish Values('2018-3-29','鲤鱼',17,10.3,'john')")   #插入一条数据
cur.execute("insert into T_fish Values('2018-3-30','鲢鱼',9,9.2,'tim')")
conn.commit()   #提交数据保存到磁盘
cur.execute("select * from T_fish")    #查找表里的记录
for row in cur.fetchall():
    print(row)
cur.execute("delete from T_fish where nums=10")   #删除数量为10的记录
conn.commit()   #提交结果到硬盘
print('=='*50)
cur.execute("select * from T_fish")    #查找T_fish表里的记录
for row in cur.fetchall():
    print(row)
conn.close()

效果:

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注本站的更多内容!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表