如何使用pymysql库向数据库表中插入数据?

使用pymysql库向数据库表中插入数据,需要在连接数据库之后,构造合适的 SQL 插入语句并执行。以下是一个详细的示例:

  1. 首先确保已经安装了pymysql库,如果没有安装,可以使用pip install pymysql进行安装。

  2. 连接数据库并插入数据的示例代码如下:

import pymysql

# 连接数据库
conn = pymysql.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database',
    charset='utf8mb4'
)

try:
    # 创建游标对象
    cursor = conn.cursor()
    # 假设我们有一个名为product_info的表,包含product_id, product_name, price, stock字段
    # 构造插入数据的SQL语句
    insert_sql = "INSERT INTO product_info (product_id, product_name, price, stock) VALUES (%s, %s, %s, %s)"
    # 要插入的数据
    data = (1, '示例商品', 99.99, 100)
    # 执行SQL语句
    cursor.execute(insert_sql, data)
    # 提交事务,使插入操作生效
    conn.commit()
    print("数据插入成功")
except pymysql.Error as e:
    print(f"插入数据时出错: {e}")
    # 如果出现错误,回滚事务
    conn.rollback()
finally:
    # 关闭游标和连接
    cursor.close()
    conn.close()

在上述代码中:

  • 使用pymysql.connect方法连接到指定的数据库。
  • 通过cursor = conn.cursor()创建游标对象,用于执行 SQL 语句。
  • 构造INSERT INTO语句,其中%s是占位符,用于防止 SQL 注入。
  • 使用cursor.execute方法执行 SQL 语句,并将数据作为参数传入。
  • 执行插入操作后,使用conn.commit()提交事务,确保数据被真正插入到数据库中。如果在执行过程中出现错误,通过conn.rollback()回滚事务,撤销未完成的操作。
  • 最后,关闭游标和数据库连接,释放资源。

如果你想要插入多条数据,可以使用executemany方法,示例如下:

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database',
    charset='utf8mb4'
)

try:
    cursor = conn.cursor()
    insert_sql = "INSERT INTO product_info (product_id, product_name, price, stock) VALUES (%s, %s, %s, %s)"
    # 多条数据的列表
    multi_data = [
        (2, '商品2', 120.5, 80),
        (3, '商品3', 59.9, 150)
    ]
    # 执行多条数据插入
    cursor.executemany(insert_sql, multi_data)
    conn.commit()
    print("多条数据插入成功")
except pymysql.Error as e:
    print(f"插入数据时出错: {e}")
    conn.rollback()
finally:
    cursor.close()
    conn.close()

这样就可以使用pymysql库向数据库表中插入单条或多条数据了。如果你对数据插入还有其他疑问,比如如何处理数据冲突等,可以随时告诉我。

你可能感兴趣的:(python编程从入门到实践,数据库,oracle)