Python操作MySQL数据库:增删改查及事务处理详解

本篇文章将介绍如何使用Python语言操作MySQL数据库,并提供一个可运行的代码示例,实现对数据表的增删改查功能和事务处理。

1. 连接MySQL数据库

首先,我们需要使用mysql.connector库连接到MySQL数据库。确保你已经安装了该库,如果没有安装,可以使用以下命令进行安装:bashpip install mysql-connector-python

安装完成后,可以使用以下代码连接到数据库:pythonimport mysql.connector

连接到MySQL数据库mydb = mysql.connector.connect( host='localhost', user='yourusername', password='yourpassword', database='testdb')

请将yourusernameyourpassword替换为你的MySQL数据库的用户名和密码,testdb替换为你要操作的数据库名称。

2. 创建数据表

成功连接数据库后,我们可以使用以下代码创建一个名为trade的数据表:python# 创建数据表def create_table(): mycursor = mydb.cursor() mycursor.execute('CREATE TABLE trade (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price FLOAT)')

调用函数创建数据表create_table()

这段代码将创建一个名为trade的表,包含idnameprice三列。其中,id列是自增主键,name列存储商品名称,price列存储商品价格。

3. 数据表操作

3.1 插入数据python# 插入数据def insert_data(name, price): mycursor = mydb.cursor() sql = 'INSERT INTO trade (name, price) VALUES (%s, %s)' val = (name, price) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, 'record inserted.')

调用函数插入数据insert_data('Apple', 1.2)insert_data('Banana', 0.8)

这段代码定义了一个insert_data函数,用于向trade表中插入数据。

3.2 查询数据python# 查询数据def select_data(): mycursor = mydb.cursor() mycursor.execute('SELECT * FROM trade') result = mycursor.fetchall() for row in result: print(row)

调用函数查询数据select_data()

这段代码定义了一个select_data函数,用于查询trade表中的所有数据。

3.3 修改数据python# 修改数据def update_data(id, name, price): mycursor = mydb.cursor() sql = 'UPDATE trade SET name = %s, price = %s WHERE id = %s' val = (name, price, id) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, 'record(s) updated.')

调用函数修改数据update_data(2, 'Orange', 1.0)

这段代码定义了一个update_data函数,用于修改trade表中的数据。

3.4 删除数据python# 删除数据def delete_data(id): mycursor = mydb.cursor() sql = 'DELETE FROM trade WHERE id = %s' val = (id,) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, 'record(s) deleted.')

调用函数删除数据delete_data(1)

这段代码定义了一个delete_data函数,用于删除trade表中的数据。

4. 事务处理python# 事务处理def transaction(): mycursor = mydb.cursor() mycursor.execute('START TRANSACTION') try: # 执行一些数据库操作 # ... mydb.commit() print('Transaction committed.') except: mydb.rollback() print('Transaction rolled back.')

调用函数进行事务处理transaction()

这段代码演示了如何在Python中进行事务处理。事务可以确保多个数据库操作要么全部成功,要么全部失败。

5. 完整代码pythonimport mysql.connector

连接到MySQL数据库mydb = mysql.connector.connect( host='localhost', user='yourusername', password='yourpassword', database='testdb')

创建数据表def create_table(): mycursor = mydb.cursor() mycursor.execute('CREATE TABLE trade (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price FLOAT)')

插入数据def insert_data(name, price): mycursor = mydb.cursor() sql = 'INSERT INTO trade (name, price) VALUES (%s, %s)' val = (name, price) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, 'record inserted.')

删除数据def delete_data(id): mycursor = mydb.cursor() sql = 'DELETE FROM trade WHERE id = %s' val = (id,) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, 'record(s) deleted.')

修改数据def update_data(id, name, price): mycursor = mydb.cursor() sql = 'UPDATE trade SET name = %s, price = %s WHERE id = %s' val = (name, price, id) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, 'record(s) updated.')

查询数据def select_data(): mycursor = mydb.cursor() mycursor.execute('SELECT * FROM trade') result = mycursor.fetchall() for row in result: print(row)

事务处理def transaction(): mycursor = mydb.cursor() mycursor.execute('START TRANSACTION') try: # 执行一些数据库操作 # ... mydb.commit() print('Transaction committed.') except: mydb.rollback() print('Transaction rolled back.')

调用函数进行测试create_table()insert_data('Apple', 1.2)insert_data('Banana', 0.8)select_data()update_data(2, 'Orange', 1.0)select_data()delete_data(1)select_data()transaction()

请将代码中的yourusernameyourpassword替换为你的MySQL数据库的用户名和密码,testdb替换为你要操作的数据库名称。

希望这篇文章能帮助你使用Python操作MySQL数据库。 Happy coding!


原文地址: https://www.cveoy.top/t/topic/f4pp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录