Python内置数据库:轻量级SQLite

Python/ target=_blank class=infotextkey>Python是一种流行的编程语言,可以用于开发各种应用程序,从图形用户界面到网站和游戏 。Python的一个特点是,它内置了一个轻量级的关系型数据库SQLite,它可以提供快速、简单的数据存储和检索 。本篇博客将介绍Python内置数据库SQLite的特点、用法和一些实用技巧,帮助读者更好地利用它来构建全面的应用程序 。

Python内置数据库:轻量级SQLite

文章插图
1. 初识SQLiteSQLite是一个轻量级的数据库,它不需要单独的服务器进程,可以直接嵌入到Python程序中 。Python内置了对SQLite的支持,内置库不需要安装,我们可以通过SQLite3模块来使用SQLite数据库 。
SQLite数据库使用的.db文件是一种数据库文件,属于二进制文件类型 。它是由SQLite引擎创建和管理的,用于存储和管理数据 。SQLite数据库文件包含了表格、行和列等结构化数据 , 并提供了对这些数据的读取、写入和查询等功能 。
SQLite数据库文件的特点如下:
  • 单个文件:SQLite数据库通常由单个.db文件组成 , 包含了所有的表格和数据,没有额外的配置文件或目录 。
  • 压缩格式:SQLite数据库文件使用了一种专有的压缩格式,可以有效地压缩和存储大量的数据 。
  • 跨平台可移植性:SQLite数据库文件可以在不同的操作系统上进行共享和使用,包括windows、linux、mac等 。
  • 零配置:创建和使用SQLite数据库文件通常不需要进行任何额外的配置或服务器设置,只需使用合适的库或工具即可 。
由于SQLite数据库文件是二进制格式 , 并且具有一定的文件结构和格式,所以通常需要使用专门的SQLite数据库引擎或相关的工具才能正确地读取、写入和操作这些文件 。
 
2.牛刀小试import sqlite3# 连接到数据库conn = sqlite3.connect('example.db')# 创建一个游标对象cursor = conn.cursor()# 执行一个查询cursor.execute('SELECT SQLITE_VERSION()')# 打印查询结果data = https://www.isolves.com/it/cxkf/yy/Python/2023-11-24/cursor.fetchone()print("SQLite version:", data)# SQLite version: ('3.40.1',)# 关闭连接conn.close()3. Sqlite的增删改查以下是一个简单的SQLite使用示例:
import sqlite3# 连接到数据库conn = sqlite3.connect('user.db')# 创建一个游标对象cursor = conn.cursor()# 创建表格# 创建一个名为students的表,包含id、name和age三个字段cursor.execute('''CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')# cursor.execute('''CREATE TABLE stocks#(date text, trans text, symbol text, qty real, price real)''')# 插入数据# 向students表中插入一条数据cursor.execute("INSERT INTO students (name, age) VALUES ('张三', 20)")# cursor.execute("INSERT INTO stocks VALUES ('2022-10-28', 'BUY', 'GOOG', 100, 490.1)")# 保存更改conn.commit()# 关闭连接conn.close()在上述例子中,我们新建了一张表,并且插入了一条数据,但是我们一般是打不开这个文件的,需要借助插件来查看数据文件;这个时候需要安装一个插件:
 
SQLite3 Editor
 
如下所示:
Python内置数据库:轻量级SQLite

文章插图
然后就可以预览刚才数据的操作:
Python内置数据库:轻量级SQLite

文章插图
建表完成之后就可以进行数据的增删改查 。
(1) 查询数据
import sqlite3# 连接到数据库conn = sqlite3.connect('user.db')# 创建一个游标对象cursor = conn.cursor()# 查询users表中的所有数据cursor.execute("SELECT * FROM students")rows = cursor.fetchall()# 打印查询结果for row in rows:print(row)# 关闭连接conn.close()# (1, '张三', 20) 
(2) 更新数据
import sqlite3# 连接到数据库conn = sqlite3.connect('user.db')# 创建一个游标对象cursor = conn.cursor()# 更新users表中id为1的数据的name字段为'李四'cursor.execute("UPDATE students SET name=? WHERE id=?", ('李四', 1))# 查询users表中的所有数据cursor.execute("SELECT * FROM students")rows = cursor.fetchall()# 打印查询结果for row in rows:print(row)# 关闭连接conn.close()# (1, '李四', 20) 
(3) 删除数据
import sqlite3# 连接到数据库conn = sqlite3.connect('example.db')# 创建一个游标对象cursor = conn.cursor()# 删除users表中id为1的数据cursor.execute("DELETE FROM students WHERE id=?", (1,))# 提交更改并关闭连接conn.commit()conn.close()


推荐阅读