内容目录
- —— SQLite3模块概述
- —— 安装与导入
- —— 创建数据库与表
- —— 插入数据
- —— 查询数据
- —— 更新与删除数据
- —— 使用事务
- —— 使用with语句管理连接
- —— 小结
SQLite是一种广泛使用的嵌入式数据库引擎,因其轻量级、高性能和易于集成的特点而受到开发者们的青睐。Python内置了sqlite3
模块,使得在Python应用中使用SQLite变得极为方便。本文将详细介绍如何使用Python中的sqlite3
模块来创建数据库、执行SQL查询、管理事务等操作,并通过具体的示例帮助读者掌握SQLite的基本用法。
SQLite3模块概述
sqlite3
模块提供了Python访问SQLite数据库的能力。它遵循DB-API 2.0规范,这意味着您可以使用标准的数据库API来编写跨数据库的应用程序。
安装与导入
在Python中使用SQLite并不需要额外安装任何软件,因为SQLite是Python标准库的一部分。您只需要导入sqlite3
模块即可开始使用:
import sqlite3
创建数据库与表
首先,我们来看如何使用sqlite3
模块创建一个新的SQLite数据库,并在其中创建一张表。
import sqlite3
# 连接到SQLite数据库
# 数据库不存在,则会自动创建
conn = sqlite3.connect('example.db')
# 创建一个Cursor对象
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# 提交事务
conn.commit()
# 关闭连接
conn.close()
插入数据
接下来,我们向刚刚创建的表中插入一些数据。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 插入一条记录
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Alice', 30))
# 批量插入记录
users = [
('Bob', 25),
('Charlie', 35),
]
cursor.executemany('INSERT INTO users (name, age) VALUES (?, ?)', users)
# 提交事务
conn.commit()
# 关闭连接
conn.close()
查询数据
现在,我们可以编写SQL查询来检索之前插入的数据。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 查询所有用户
cursor.execute('SELECT * FROM users')
for row in cursor.fetchall():
print(row)
# 查询年龄大于30岁的用户
cursor.execute('SELECT * FROM users WHERE age > ?', (30,))
for row in cursor.fetchall():
print(row)
# 关闭连接
conn.close()
更新与删除数据
除了查询数据外,我们还可以更新和删除表中的记录。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 更新年龄为35的用户的名字
cursor.execute('UPDATE users SET name = ? WHERE age = ?', ('Charlie Updated', 35))
# 删除年龄为25的用户
cursor.execute('DELETE FROM users WHERE age = ?', (25,))
# 提交事务
conn.commit()
# 关闭连接
conn.close()
使用事务
为了保证数据的一致性,我们可以使用事务来批量执行SQL语句。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
try:
# 开始事务
conn.execute('BEGIN TRANSACTION')
# 执行多个SQL语句
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('David', 40))
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Eve', 45))
# 提交事务
conn.commit()
except sqlite3.Error as e:
print("An error occurred:", e.args[0])
# 回滚事务
conn.rollback()
# 关闭连接
conn.close()
使用with语句管理连接
为了简化代码并确保资源正确释放,可以使用with
语句来管理数据库连接。
import sqlite3
with sqlite3.connect('example.db') as conn:
cursor = conn.cursor()
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
print(row)
小结
通过本文的介绍,您应该已经熟悉了如何使用Python中的sqlite3
模块来操作SQLite数据库。从创建数据库和表,到插入、查询、更新和删除数据,再到事务管理,本文涵盖了SQLite操作的基本方面。希望这篇教程能够帮助您更好地理解和运用SQLite3模块,为您的Python应用程序增添持久化存储功能。
本文详细介绍了如何使用Python中的sqlite3
模块来操作SQLite数据库,并通过具体的示例帮助读者掌握SQLite的基本用法,旨在帮助读者从入门到精通SQLite3模块的使用。希望对您有所帮助!