现在学python3支持mysql_python学习4--python3连mysql增删改查

前言

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

环境准备

python3.7

使用pip安装PyMySQL

pip install pymysql

74cc99868d78fbff53058f4127424c7f.png

先使用第三方工具连接mysql数据库,比如navicat连接mysql

连接名:随便命名

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

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

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

密码:123456 (授权远程登陆的密码)

78294ff9aa4f9d2fb220641bc10a058a.png

查询操作

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

f90425bdfc2c00442bf8049cf2d66387.png

1b1c154c2d6f3e84b8a392cd0781f3a7.png

接下来使用python转换成对应的代码查询

# coding:utf-8

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,))

1

第1个的值:1

第2个的值:2

第3个的值:3

第4个的值:4

第5个的值:5

第6个的值:6

第7个的值:7

第8个的值:8

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

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

删除操作

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

delete from pms_users where username='xingzi'

12d5e5e671684631758e0ad641b8ad9e.png

# coding:utf-8

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'

d5960faf3a1eb6ae461aff90bba32fc8.png

# coding:utf-8

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)

7bbfd54b84a38b3392548af2da88e563.png

# coding:utf-8

import pymysql

#连接数据库

c=pymysql.connect(host='47.98.66.11',

port=3306,

user='root',

passwd='P@ssw0rd',

db='aiopms'

)

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不一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值