Python 与数据库:使用 SQLite 进行数据存储和查询

前言

大家好!最近我在处理一些数据存储和查询的工作时,发现了一种非常方便且高效的解决方案 ——SQLite。作为一个经常与 Python 打交道的开发者,我觉得有必要把这个过程分享给大家。SQLite 是一种轻量级的关系型数据库,它的零配置特性使得它非常适合用于开发和测试环境。今天,我将带大家一起了解如何在 Python 中使用 SQLite 进行数据存储和查询。

是不是感觉很兴奋?那就赶快跟上我的脚步,一起探索 Python 和 SQLite 的奥秘吧!记得关注我的博客并收藏这篇文章,以便日后参考哦!

什么是 SQLite?

SQLite 是一种嵌入式关系数据库管理系统,它的代码库被嵌入到最终的应用程序中。与其他数据库不同的是,SQLite 并不是一个独立的数据库服务,而是一个可以被嵌入到应用程序中的库文件。它的特点包括:

  • 轻量级:SQLite 的库文件非常小,通常在几百 KB 到几 MB 之间。
  • 零配置:不需要安装和配置数据库服务器。
  • 自给自足:所有的数据都存储在一个文件中,便于管理和分发。
  • 跨平台:支持 Windows、MacOS、Linux 等多个平台。

这些特性使得 SQLite 非常适合小型应用程序、测试和开发环境以及单用户桌面应用。

安装 SQLite

在 Python 中使用 SQLite 非常简单,因为 Python 内置了对 SQLite 的支持。我们只需要导入 sqlite3 模块即可。

1
import sqlite3

这意味着我们无需进行额外的安装步骤,直接就可以开始使用 SQLite。

创建数据库和表

首先,我们需要创建一个数据库连接并创建一个表。假设我们要存储一些用户信息,比如用户 ID、姓名和年龄,我们可以按照下面的步骤进行操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sqlite3

# 连接到SQLite数据库(如果数据库不存在会自动创建)
conn = sqlite3.connect('example.db')
print("Opened database successfully")

# 创建一个游标对象
cursor = conn.cursor()

# 创建用户表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL
)
''')
print("Table created successfully")

# 提交当前事务
conn.commit()

# 关闭数据库连接
conn.close()

上述代码将创建一个名为 example.db 的 SQLite 数据库文件,并在其中创建一个 users 表。

插入数据

接下来,我们向 users 表中插入一些数据。我们可以使用 INSERT INTO 语句来完成这个任务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sqlite3

# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Charlie', 35)")

# 提交当前事务
conn.commit()
print("Records inserted successfully")

# 关闭数据库连接
conn.close()

通过上述代码,我们向 users 表中插入了三条记录。

查询数据

我们可以使用 SELECT 语句从数据库中查询数据。下面是一个简单的查询示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sqlite3

# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 查询数据
cursor.execute("SELECT id, name, age FROM users")
rows = cursor.fetchall()

# 打印查询结果
for row in rows:
print(f"ID = {row[0]}, Name = {row[1]}, Age = {row[2]}")

print("Operation done successfully")

# 关闭数据库连接
conn.close()

该代码将查询 users 表中的所有记录并打印出来。

更新和删除数据

我们还可以使用 UPDATEDELETE 语句来更新和删除数据。以下是一些示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sqlite3

# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 更新数据
cursor.execute("UPDATE users SET age = 40 WHERE name = 'Alice'")
conn.commit()
print("Total number of rows updated :", cursor.rowcount)

# 删除数据
cursor.execute("DELETE FROM users WHERE name = 'Bob'")
conn.commit()
print("Total number of rows deleted :", cursor.rowcount)

# 关闭数据库连接
conn.close()

上述代码将更新 Alice 的年龄为 40,并删除名为 Bob 的记录。

结论

在这篇文章中,我们介绍了如何在 Python 中使用 SQLite 进行数据存储和查询。从创建数据库和表,到插入、查询、更新和删除数据,希望这些示例代码能帮助你更好地理解 SQLite 的使用方法。SQLite 作为一个轻量级、零配置的数据库,非常适合用于开发和测试环境。如果你觉得这篇文章对你有帮助,不要忘记关注我的博客并收藏这篇文章哦!