Python 数据库管理
数据库是用于存储和管理数据的工具。在大量数据存储和处理的情况下,使用数据库可以提高数据的查询和操作效率。Python 提供了多个内置模块和第三方库来处理数据库,使得数据库管理变得更加简单和高效。
数据库连接
在 Python 中,连接数据库的第一步是导入相应的模块或库。最常用的数据库模块是 sqlite3
、mysql.connector
和 psycopg2
。这些模块提供了用于连接和操作不同类型数据库的功能。
以下是一个连接到 SQLite 数据库的示例:
import sqlite3
# 创建数据库连接
conn = sqlite3.connect('example.db')
# 创建一个游标对象
cursor = conn.cursor()
# 执行 SQL 查询
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL);''')
# 关闭连接
conn.close()
数据库操作
连接成功后,可以对数据库进行增、删、改、查操作。
插入数据
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 插入一条数据
cursor.execute(INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25))
conn.commit()
# 插入多条数据
users = [(2, 'Bob', 30), (3, 'Chris', 35)]
cursor.executemany(INSERT INTO users (id, name, age) VALUES (?, ?, ?), users)
conn.commit()
conn.close()
更新数据
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 更新数据
cursor.execute(UPDATE users SET age = 26 WHERE id = 1)
conn.commit()
conn.close()
删除数据
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 删除数据
cursor.execute(DELETE FROM users WHERE id = 2)
conn.commit()
conn.close()
查询数据
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 查询数据
cursor.execute(SELECT * FROM users)
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
数据库事务
在数据库操作中,事务是一系列的操作,要么全部成功应用到数据库,要么全部回滚。数据库事务可以确保数据的完整性和一致性。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 开始事务
conn.execute(BEGIN)
try:
# 执行一系列操作
cursor.execute(INSERT INTO users (id, name, age) VALUES (4, 'David', 40))
cursor.execute(UPDATE users SET age = 27 WHERE id = 1)
# 提交事务
conn.commit()
except:
# 回滚事务
conn.rollback()
conn.close()
结论
Python 提供了多种方法来管理数据库。使用适合的库和模块,可以方便地连接数据库、执行各种操作和管理事务。以上示例介绍了如何连接 SQLite 数据库、插入、更新、删除和查询数据,以及如何应用事务。
其他常用的数据库如 MySQL、PostgreSQL 和 MongoDB 也有相应的模块和库可以使用。根据需要选择合适的数据库和相应的模块,可以更好地管理和处理数据。