Python 可以通过多种方式与数据库进行交互,常见的数据库包括 SQLite、MySQL 和 PostgreSQL。下面我将介绍如何使用 Python 连接和操作这三种数据库。
1. 使用 SQLite 进行数据库操作
SQLite 是一个轻量级的嵌入式数据库,通常用于小型项目或原型开发。Python 内置了对 SQLite 的支持,无需额外安装库。
1.1 连接 SQLite 数据库
import sqlite3
# 连接到 SQLite 数据库,如果数据库不存在则会自动创建
conn = sqlite3.connect('example.db')
# 创建一个游标对象
cursor = conn.cursor()
1.2 创建表
cursor.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
)
''')
1.3 插入数据
cursor.execute('''
INSERT INTO users (name, email) VALUES (?, ?)
''', ('John Doe', 'john.doe@example.com'))
# 提交事务
conn.commit()
1.4 查询数据
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
print(row)
1.5 更新数据
cursor.execute('''
UPDATE users SET name = ? WHERE id = ?
''', ('Jane Doe', 1))
conn.commit()
1.6 删除数据
cursor.execute('DELETE FROM users WHERE id = ?', (1,))
conn.commit()
1.7 关闭连接
conn.close()
2. 使用 MySQL 进行数据库操作
MySQL 是一个常用的开源关系型数据库管理系统。要在 Python 中操作 MySQL,你需要安装 mysql-connector-python
或 PyMySQL
。
2.1 安装 MySQL 连接器
pip install mysql-connector-python
2.2 连接 MySQL 数据库
import mysql.connector
conn = mysql.connector.connect(
host='localhost',
user='yourusername',
password='yourpassword',
database='testdb'
)
cursor = conn.cursor()
2.3 创建表
cursor.execute('''
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE
)
''')
2.4 插入数据
cursor.execute('''
INSERT INTO users (name, email) VALUES (%s, %s)
''', ('John Doe', 'john.doe@example.com'))
conn.commit()
2.5 查询数据
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
print(row)
2.6 更新数据
cursor.execute('''
UPDATE users SET name = %s WHERE id = %s
''', ('Jane Doe', 1))
conn.commit()
2.7 删除数据
cursor.execute('DELETE FROM users WHERE id = %s', (1,))
conn.commit()
2.8 关闭连接
conn.close()
3. 使用 PostgreSQL 进行数据库操作
PostgreSQL 是一个强大的开源对象关系数据库系统。要在 Python 中操作 PostgreSQL,你需要安装 psycopg2
或 asyncpg
(用于异步操作)。
3.1 安装 PostgreSQL 连接器
pip install psycopg2
3.2 连接 PostgreSQL 数据库
import psycopg2
conn = psycopg2.connect(
host='localhost',
database='testdb',
user='yourusername',
password='yourpassword'
)
cursor = conn.cursor()
3.3 创建表
cursor.execute('''
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE
)
''')
conn.commit()
3.4 插入数据
cursor.execute('''
INSERT INTO users (name, email) VALUES (%s, %s)
''', ('John Doe', 'john.doe@example.com'))
conn.commit()
3.5 查询数据
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
print(row)
3.6 更新数据
cursor.execute('''
UPDATE users SET name = %s WHERE id = %s
''', ('Jane Doe', 1))
conn.commit()
3.7 删除数据
cursor.execute('DELETE FROM users WHERE id = %s', (1,))
conn.commit()
3.8 关闭连接
conn.close()
总结
无论是使用 SQLite、MySQL 还是 PostgreSQL,Python 都提供了简便的库来连接和操作数据库。SQLite 是轻量级的,适合小型项目;MySQL 和 PostgreSQL 则适合需要更高性能和扩展性的项目。选择具体的数据库取决于项目的需求和环境。