上一篇
Python数据库操作教程:如何将数据插入数据库 | 实用指南
- Python
- 2025-08-14
- 1895
Python数据库操作教程:如何将数据插入数据库
本教程详细讲解Python操作SQLite、MySQL和PostgreSQL数据库的方法,包含完整代码示例。
为什么需要将数据存入数据库?
数据库是存储结构化数据的核心工具,相比文件存储具有以下优势:
- 数据持久化存储
- 高效查询能力
- 数据一致性保证
- 多用户并发访问
- 数据安全性
Python操作数据库的基本步骤
- 导入数据库模块
- 建立数据库连接
- 创建游标对象
- 执行SQL语句
- 提交事务
- 关闭连接
SQLite数据库操作
创建表结构
import sqlite3
# 连接数据库(不存在则创建)
conn = sqlite3.connect('mydatabase.db')
# 创建游标对象
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
age INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
''')
# 提交更改
conn.commit()
插入单条数据
# 插入单条数据
new_user = ('张三', 'zhangsan@example.com', 28)
cursor.execute("INSERT INTO users (name, email, age) VALUES (?, ?, ?)", new_user)
# 提交更改
conn.commit()
print(f"插入成功,最后插入的行ID: {cursor.lastrowid}")
批量插入数据
# 批量插入数据
users = [
('李四', 'lisi@example.com', 32),
('王五', 'wangwu@example.com', 25),
('赵六', 'zhaoliu@example.com', 40)
]
cursor.executemany("INSERT INTO users (name, email, age) VALUES (?, ?, ?)", users)
conn.commit()
print(f"批量插入了 {len(users)} 条记录")
MySQL数据库操作
需要先安装MySQL驱动:pip install mysql-connector-python
连接MySQL并插入数据
import mysql.connector
from mysql.connector import Error
try:
# 建立数据库连接
conn = mysql.connector.connect(
host='localhost',
user='your_username',
password='your_password',
database='your_database'
)
if conn.is_connected():
cursor = conn.cursor()
# 插入数据
insert_query = """
INSERT INTO employees (name, department, salary)
VALUES (%s, %s, %s)
"""
employee_data = ('张明', '技术部', 8500)
cursor.execute(insert_query, employee_data)
conn.commit()
print("数据插入成功!")
except Error as e:
print(f"数据库错误: {e}")
finally:
if conn and conn.is_connected():
cursor.close()
conn.close()
PostgreSQL数据库操作
需要先安装PostgreSQL驱动:pip install psycopg2
连接PostgreSQL并插入数据
import psycopg2
from psycopg2 import OperationalError
try:
# 建立数据库连接
conn = psycopg2.connect(
host="localhost",
database="your_database",
user="your_username",
password="your_password",
port="5432"
)
cursor = conn.cursor()
# 插入数据
insert_query = """
INSERT INTO products (product_name, price, category)
VALUES (%s, %s, %s)
RETURNING product_id;
"""
product_data = ('Python编程书籍', 99.9, '图书')
cursor.execute(insert_query, product_data)
# 获取返回的ID
product_id = cursor.fetchone()[0]
conn.commit()
print(f"产品插入成功!产品ID: {product_id}")
except OperationalError as e:
print(f"数据库连接错误: {e}")
finally:
if conn:
cursor.close()
conn.close()
数据库操作最佳实践
1. 使用参数化查询
始终使用参数化查询(如SQLite的?占位符)而不是字符串拼接,防止SQL注入攻击。
2. 异常处理
使用try-except块捕获数据库操作中的异常,确保程序健壮性。
3. 资源清理
在finally块中关闭数据库连接和游标,避免资源泄漏。
4. 批量操作
使用executemany()进行批量插入,大幅提升性能。
5. 事务管理
合理使用事务确保数据一致性,特别是涉及多个操作时。
6. 连接池
对于高并发应用,使用数据库连接池管理连接。
本文由MouXin于2025-08-14发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://liuhe.jltcw.com/20258108.html
发表评论