python连接mysql数据库进行增删改查

本文介绍了如何在Python环境中使用PyMySQL库连接并操作MySQL数据库,包括查询、删除、更新和新增数据的操作示例。通过设置环境,利用Navicat连接MySQL,然后通过Python代码演示了对数据库的CRUD操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pymysql是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用mysqldb。

环境准备

python3.7

使用pip安装PyMySQL

pip install pymysql

在这里插入图片描述
先使用第三方工具连接mysql数据库,比如navicat连接mysql

连接名:随便命名

主机名或ip地址:mysql服务的ip地址

端口:3306 (端口号,默认一般是3306)

用户名:root (授权远程登陆的用户名)

密码:123456 (授权远程登陆的密码)
在这里插入图片描述

查询操作

如存在一个aiopms数据库,里面有一张pms_knowledges_sort,有sortid、name、desc、status四个字段,使用sql查询结果如下

搭建开源opms项目
在这里插入图片描述
在这里插入图片描述
接下来使用python转换成对应的代码查询

import pymysql
#打开数据库连接
c=pymysql.connect(host='47.98.66.11',
                  port=3306,
                  user='root',
                  password='P@ssw0rd',
                  db='aiopms')
#使用cursor()方法创建一个游标对象cu
#方式一,返回元组嵌套元组
cu=c.cursor()
# #运行结果:((1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,))
 
#方式二,返回列表嵌套字典
# cu=c.cursor(cursor=pymysql.cursors.DictCursor)
#运行结果:[{'sortid': 1}, {'sortid': 2}, {'sortid': 3}, {'sortid': 4}, {'sortid': 5}, {'sortid': 6}, {'sortid': 7}, {'sortid': 8}]
 
#使用execute()方法执行sql查询
cu.execute("select sortid from pms_knowledges_sort")
 
#使用fetchall()方法获取查询结果
result=cu.fetchall()
print(result)
 
#关闭数据库连接
c.close()
#元组格式,取第一个值 1
print(result[0][0])
# #元组格式,取所有结果的值
for i in range(len(result)):
    print("第{}个的值:{}".format(i+1,result[i][0]))
    #结果
# 第1个的值:1   ...
 
#字典格式,取第一个值 1
# print(result[0]["sortid"]) 

运行结果:

((1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,))
11个的值:12个的值:23个的值:34个的值:45个的值:56个的值:67个的值:78个的值:8 

如果想查询结果以字典格式输出,可以用c.cursor(cursor=pymysql.cursors.DictCursor)

c.cursor(),返回元组嵌套元组

删除操作

使用python删除一条数据,比如,删除pms_users表中的xingzi这条记录

delete from pms_users where username=‘xingzi’

在这里插入图片描述

import pymysql
#打开数据库连接
c=pymysql.connect(host='47.98.66.11',
                  port=3306,
                  user='root',
                  password='P@ssw0rd',
                  db='aiopms')
#使用cursor()方法获取操作游标
cu=c.cursor()
try:
    #执行
    cu.execute("delete from pms_users where username='xingzi'")
    #提交
    c.commit()
except Exception as e:
    print("操作报错:{}".format(e))
    #错误回滚
    c.rollback()
finally:
    c.close()  

更新操作

更新username用户名是maomao的用户,把status改成2

update pms_users set status=2 where username=‘maomao’

在这里插入图片描述

import pymysql
#连接数据库
c=pymysql.connect(host='47.98.66.11',
                  port=3306,
                  user='root',
                  passwd='P@ssw0rd',
                  db='aiopms')
 
#使用cursor()方法获取操作游标
cu=c.cursor()
try:
    #执行sql
    cu.execute('update pms_users set status=2 where username="maomao"')
    c.commit() #提交
except Exception as e:
    print("执行报错:{}".format(e))
    c.rollback() #错误回滚
finally:
    c.close()

新增数据

往数据库里面插入一条数据,比如在pms_knowledges_sort表中插入一条数据

insert into pms_knowledges_sort values(9,“学习”,“”,1)

在这里插入图片描述

import pymysql
#连接数据库
c=pymysql.connect(host='47.98.66.11',
                  port=3306,
                  user='root',
                  passwd='P@ssw0rd',
                  db='aiopms'
)
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:725638078 
cu=c.cursor()
try:
    cu.execute('insert into pms_knowledges_sort values(9,"学习","",1)')
    c.commit()
except Exception as e:
    print("执行报错:{}".format(e))
    c.rollback()
finally:
    c.close()

从上面的代码可以看出,处理查询的代码不一样,新增、删除、更新数据库操作代码都一样,只是执行的sql不一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值