PyQt5之对MySQL数据库进行更新、插入和删除操作
1、画好界面
2、更新数据库中的表
# 【更新数据】按钮
self.pushB_update.clicked.connect(self.pushB_update_Clicked)
# 【更新数据】按钮功能
def pushB_update_Clicked(self):
conn = pymysql.connect(host=localhost, port=3306, user=root, password="199632", db="test")
cur = conn.cursor()
# 先读取右边表格输入的ID和姓名
id1 = self.tableWidget_2.item(0, 0).text()
name1 = self.tableWidget_2.item(0, 1).text()
# 更新的sql语句
sql = "UPDATE tab1 SET name="+name1+" WHERE id="+id1
# 打印测试
print(sql)
# 执行sql语句,并发送给数据库
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
结果如下所示,我在界面的表格第一行修改了ID为4的姓名,点击更新按钮后执行更新语句,可以看到数据库中的表的ID=4的姓名已由jack变成了taylor,说明更新成功!
3、删除数据库中的表的数据
还是在界面的右边那个表,点击【删除数据】按钮,将刚才输入过的那一行数据在数据库中找到并删除对应的行,代码如下所示:
# 【删除数据】按钮
self.pushB_delete.clicked.connect(self.pushB_delete_Clicked)
# 【删除数据】按钮功能
def pushB_delete_Clicked(self):
conn = pymysql.connect(host=localhost, port=3306, user=root, password="199632", db="test")
cur = conn.cursor()
# 先读取右边表格输入的ID
id1 = self.tableWidget_2.item(0, 0).text()
# 删除的sql语句
sql = "DELETE FROM tab1 WHERE id="+id1
# 打印测试
print(sql)
# 执行sql语句,并发送给数据库
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
点击删除按钮后,可以看到数据库中已经把ID=4的这一行已经删除:
4、在数据库的表中插入数据
点击【插入数据】按钮,将界面右边的表中输入的信息插入到数据库对应的表中,代码如下:
# 【插入数据】按钮
self.pushB_insert.clicked.connect(self.pushB_insert_Clicked)
# 【插入数据】按钮功能
def pushB_insert_Clicked(self):
conn = pymysql.connect(host=localhost, port=3306, user=root, password="199632", db="test")
cur = conn.cursor()
# 先读取右边表格输入的ID和姓名
id1 = self.tableWidget_2.item(0, 0).text()
name1 = self.tableWidget_2.item(0, 1).text()
id2 = self.tableWidget_2.item(1, 0).text()
name2 = self.tableWidget_2.item(1, 1).text()
# 插入的sql语句
sql1 = "INSERT INTO tab1 (id,NAME) VALUES ("+id1+","+name1+")"
sql2 = "INSERT INTO tab1 (id,NAME) VALUES ("+id2+","+name2+")"
# 打印测试
print(sql1)
print(sql2)
# 执行sql语句,并发送给数据库
cur.execute(sql1)
cur.execute(sql2)
conn.commit()
cur.close()
conn.close()
这里在表格中输入了两行信息,因此代码中需执行两次sql语句,点击插入按钮后,可以看到数据库中的表已经增加了两行数据: 好了,PyQt5对mysql数据库的简单增删改查都已经介绍完毕,因为只是简单地介绍,所有有些代码没有进行优化,比较笨重,例如没有判断界面的表中到达输入了多少行信息、没有循环执行sql语句等等,不过关键的部分还是基本讲到了的,希望对大家有用!
