在本章节中,我们将学习 Python 中常用的数据库接口,包括 sqlite3
(用于 SQLite 数据库)和 MySQLdb
(用于 MySQL 数据库)。
8.2.1 sqlite3 - SQLite 数据库
SQLite 是一款轻量级、无需安装、零配置的嵌入式关系数据库。Python 自带 sqlite3
库,无需额外安装。以下是一个简单的 sqlite3
使用示例。
创建数据库和表
import sqlite3
# 连接数据库(如果不存在,将自动创建)
conn = sqlite3.connect('sqlite_example.db')
# 创建游标
cursor = conn.cursor()
# 创建 users 表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL,
email TEXT
)
''')
# 提交更改并关闭连接
conn.commit()
conn.close()
插入数据
conn = sqlite3.connect('sqlite_example.db')
cursor = conn.cursor()
# 插入数据
cursor.execute("INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com')")
# 提交更改
conn.commit()
# 关闭连接
conn.close()
查询数据
conn = sqlite3.connect('sqlite_example.db')
cursor = conn.cursor()
# 查询数据
cursor.execute('SELECT * FROM users')
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
# 关闭连接
conn.close()
更新和删除数据
conn = sqlite3.connect('sqlite_example.db')
cursor = conn.cursor()
# 更新数据
cursor.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")
conn.commit()
# 删除数据
cursor.execute("DELETE FROM users WHERE id = 1")
conn.commit()
# 关闭连接
conn.close()
8.2.2 MySQLdb - MySQL 数据库
MySQLdb
是一个用于连接 MySQL 数据库的 Python 库。在使用之前,需要先安装:
pip install mysqlclient
注:MySQLdb
仅支持 Python 2.x 版本,如果你使用的是 Python 3.x,可以使用 mysqlclient
,它是 MySQLdb
的 Python 3.x 分支。
以下是一个简单的 MySQLdb
使用示例。
创建数据库和表
import MySQLdb
# 连接数据库
conn = MySQLdb.connect(host='localhost', user='your_username', passwd='your_password', db='mydb')
# 创建游标
cursor = conn.cursor()
# 创建 users 表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
email VARCHAR(100)
)
''')
# 提交更改并关闭连接
conn.commit()
conn.close()
插入数据
conn = MySQLdb.connect(host='localhost', user='your_username', passwd='your_password', db='mydb')
cursor = conn.cursor()
# 插入数据
cursor.execute("INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com')")
# 提交更改
conn.commit()
# 关闭连接
conn.close()
查询数据
conn = MySQLdb.connect(host='localhost', user='your_username', passwd='your_password', db='mydb')
cursor = conn.cursor()
# 查询数据
cursor.execute('SELECT * FROM users')
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
# 关闭连接
conn.close()
更新和删除数据
conn = MySQLdb.connect(host='localhost', user='your_username', passwd='your_password', db='mydb')
cursor = conn.cursor()
# 更新数据
cursor.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")
conn.commit()
# 删除数据
cursor.execute("DELETE FROM users WHERE id = 1")
conn.commit()
# 关闭连接
conn.close()
以上就是 Python 中常用的数据库接口 sqlite3
和 MySQLdb
的使用示例。学习这些知识点时,建议你亲自动手操作,逐渐积累经验。在实际项目中,你可能会遇到更复杂的场景,需要根据实际情况选择适当的数据库操作和优化策略。同时,编写易于维护和扩展的代码也很重要,如使用 ORM(Object-Relational Mapping,对象关系映射)库,例如 SQLAlchemy 和 Django ORM,可以简化数据库操作,提高代码可读性和可维护性。