一、SQLite 3 增删改查
在Python中使用SQLite 3进行数据库操作是一种常见的实践,特别是对于小型应用程序或原型开发。以下是使用Python标准库中的`sqlite3`模块进行增删改查(CRUD)操作的基本示例。
1. 连接数据库
首先,需要连接到SQLite数据库。如果数据库文件不存在,`sqlite3.connect()`将会创建一个新的数据库文件。
import sqlite3
# 连接到SQLite数据库
# 如果文件不存在,会自动在当前目录创建:
conn = sqlite3.connect('example.db')
# 创建一个Cursor对象,并通过它来执行SQL命令
c = conn.cursor()
2. 创建表
使用`cursor`对象执行SQL命令来创建表。
# 插入数据
c.execute("INSERT INTO users (name, age) VALUES ('Alice', 21)")
# 提交事务
conn.commit()
3. 插入数据
使用`execute()`方法插入数据。
# 插入数据
c.execute("INSERT INTO users (name, age) VALUES ('Alice', 21)")
# 提交事务
conn.commit()
4. 查询数据
使用`execute()`方法查询数据,并使用`fetchall()`或`fetchone()`获取结果。
# 查询数据
c.execute('SELECT * FROM users')
# 获取所有用户
users = c.fetchall()
for user in users:
print(user)
# 提交事务
conn.commit()
5. 更新数据
使用`execute()`方法更新数据。
# 更新数据
c.execute("UPDATE users SET age = 22 WHERE name = 'Alice'")
# 提交事务
conn.commit()
6. 删除数据
使用`execute()`方法删除数据。
# 删除数据
c.execute("DELETE FROM users WHERE name = 'Alice'")
# 提交事务
conn.commit()
7. 关闭连接
完成所有数据库操作后,应该关闭cursor和连接。
# 关闭cursor
c.close()
# 关闭连接
conn.close()
这些是使用Python进行SQLite 3数据库操作的基本步骤。在实际应用中,可能需要处理异常和更复杂的事务管理,但上述示例提供了一个良好的起点。
二、异常处理和事务管理
在Python中使用SQLite 3时,异常处理和事务管理是确保数据库操作稳定性和数据一致性的重要方面。以下是如何在Python中使用`sqlite3`模块进行异常处理和事务管理的示例。
异常处理
当执行数据库操作时,可能会遇到各种错误,如语法错误、约束违规等。为了妥善处理这些错误,可以使用`try`和`except`语句捕获异常。
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
try:
# 尝试执行一个SQL语句
c.execute("SELEC * FROM users") # 故意写错的SQL语句
except sqlite3.DatabaseError as e:
print(f"数据库错误: {e}")
except sqlite3.IntegrityError as e:
print(f"完整性错误: {e}")
except Exception as e:
print(f"其他错误: {e}")
finally:
# 无论是否发生异常,都尝试提交事务
conn.commit()
# 关闭cursor和连接
c.close()
conn.close()
事务管理
SQLite支持事务,事务可以确保数据库操作的原子性。在`sqlite3`模块中,事务管理可以通过显式地开始和提交事务来实现。
import sqlite3
co