PyQt5之对MySQL数据库进行更新、插入和删除操作

上一篇介绍了如何在PyQt5中实现连接mysql以及通过按钮进行简单查询数据库信息并显示到界面上:PyQt5之连接MySQL数据库以及查询获取数据。在这一篇中我将介绍其余三个数据库的基本操作:更新、插入和删除,主要通过例子来介绍在界面中如何实现这些操作!

1、画好界面

和上一篇PyQt5之连接MySQL数据库以及查询获取数据一样的界面,如下图所示:
PyQt5之对MySQL数据库进行更新、插入和删除操作_第1张图片

2、更新数据库中的表

如下图所示,还是之前的那个表,现在实现在上图的界面中的右边表格里输入ID和姓名后,点击【更新数据】按钮后把下图中的表中对应的ID的信息进行更新。
PyQt5之对MySQL数据库进行更新、插入和删除操作_第2张图片
连接数据库、按钮这些的实现方法与上一篇的查询大体相同,主要区别就是需要把右边表中输入的信息读取出来,然后写到update更新sql语句中,然后发送给数据库。与之前的查询语句不同,这里采用了字符串+变量的形式组合成sql语句(尤其要注意字符型和整型的书写区别,是否要加引号),因此建议大家在这句后面打印输出看下完整的sql语句是否正确,确认无误后再执行语句,而且类似更新插入这种语句,不只需要调用execute()函数,还需要调用commit(),查询语句则不用,需要记住这一点区别。【更新数据】按钮的功能实现代码如下:

        # 【更新数据】按钮
        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,说明更新成功!
PyQt5之对MySQL数据库进行更新、插入和删除操作_第3张图片
PyQt5之对MySQL数据库进行更新、插入和删除操作_第4张图片

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的这一行已经删除:
PyQt5之对MySQL数据库进行更新、插入和删除操作_第5张图片

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数据库进行更新、插入和删除操作_第6张图片
PyQt5之对MySQL数据库进行更新、插入和删除操作_第7张图片
好了,PyQt5对mysql数据库的简单增删改查都已经介绍完毕,因为只是简单地介绍,所有有些代码没有进行优化,比较笨重,例如没有判断界面的表中到达输入了多少行信息、没有循环执行sql语句等等,不过关键的部分还是基本讲到了的,希望对大家有用!

你可能感兴趣的:(PyQt5)