Python系列模块之pymysql操作MySQL 数据库

news/2024/12/19 5:05:09/

目录

一、安装pymysql

二、连接数据库

三、数据库操作

3.1 查询

3.2 更新

3.3 使用循环批量更新


 Python 系列文章学习记录: 

Python系列之Windows环境安装配置_开着拖拉机回家的博客-CSDN博客

Python系列之变量和运算符_开着拖拉机回家的博客-CSDN博客

Python系列之判断和循环_开着拖拉机回家的博客-CSDN博客

Python系列之字符串和列表_开着拖拉机回家的博客-CSDN博客

Python系列之文件操作和函数_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库OS详解_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库re详解_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库json详解_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库shutil详解_开着拖拉机回家的博客-CSDN博客


一、安装pymysql


在Pycharm 中 输入 import pymysql , 根据提示 我们直接点击安装,模块会安装到默认的 Python 安装目录的 lib目录,如下是我 安装好 pymysql 模块路径。

或者使用pip


二、连接数据库


使用connect函数创建连接对象,此连接对象提供关闭数据库、事务回滚等操作
一般传参为:host, user, password, port(默认为3306), database(想要连接的数据库名)

connect() 方法参数

参数 说明:

                   参数

                       说明

host=

数据库连接地址

user=

数据库用户名

password=

数据库password

database=

要连接的数据库名字

port=3306

连接端口,默认 3306

charset=utf8

设置字符集,一般为utf8

connect_timeout=10

连接数据库超时时间,一般默认为10秒

dsn

数据源名称,给出该参数表示数据库依赖

max_allowed_packet
 16 * 1024 * 1024
autocommitFalse 自动提交默认 为falsse

连接对象的常见方法

方法名

说明

cursor()

获取游标对象,操作数据库,如执行DML操作,调用存储过程等

commit()

提交事务

rollback()

回滚事务

close()

关闭数据库连接

cursor游标对象的常见方法

方法名

说明

execute(query)

执行数据库操作,如sql语句或数据库命令

executemany(query,params)

用于批量操作,如:批量更新

fetchone()

获取查询结果集中的下一条记录

fetchmany(size)

获取查询结果集中指定数量的记录,size默认为1

fetchall()

获取查询结果集中所有记录

nextset()

跳至下一个可用的结果集

close()

关闭当前游标对象


三、数据库操作


3.1 查询


import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",user="root",password="winner@001",database="ipvacloud",charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()siteId = "Ahczlcc_P00001"# 查询SQL
selectSQL = """SELECT SiteId,SiteName from  site_all_info where SiteId ='%s'; 
""" % siteId
try:# 执行sql语句,也可执行数据库命令curses.execute(selectSQL)# 所有结果result = curses.fetchall()print(type(result))print(result)except Exception as e:db.rollback()     # 回滚print("查询失败", e)
finally:curses.close()    # 关闭当前游标db.close()        # 关闭数据库连接

查询结果:

增删改需要有提交事务的操作,查不需要提交事务,但如果循环查询,务必提交事务,否则结果都是重复的。

3.2 更新


import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",user="root",password="winner@001",database="ipvacloud",charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()siteId = "Ahczlcc_P00001"
siteName = "大中国安徽滁州乐彩城"# 查询SQL
selectSQL = """update  site_all_info set sitename = '%s' where SiteId ='%s'; 
""" % (siteName, siteId)
try:# 执行sql语句,也可执行数据库命令curses.execute(selectSQL)# 增删改,必须执行事务db.commit()# 所有结果result = curses.fetchall()print(type(result))print(result)except Exception as e:db.rollback()     # 回滚print("查询失败", e)
finally:curses.close()    # 关闭当前游标db.close()        # 关闭数据库连接

查询是否更新成功

3.3 使用循环批量更新


import pymysql# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",user="root",password="winner@001",database="ipvacloud",charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()siteId = "Ahczlcc_P00001"
siteName = "大中国安徽滁州乐彩城"table_name = "site_all_info"
update_list = ['Ahczlcc_P00001S00004', 'Ahczlcc_P00001S00005']
update_condition_list = ['北餐饮门', '北大门']for i in range(len(update_list)):# 查询SQLselectSQL = """update  %s set sitename = '%s' where SiteId ='%s'; """ % (table_name, update_condition_list[i], update_list[i])print(table_name, update_condition_list[i], update_list[i])try:# 执行sql语句curses.execute(selectSQL)# 执行事务db.commit()except Exception as e:db.rollback()print(e)
curses.close()
db.close()

执行结果对比:


Python 系列文章学习记录: 

Python系列之Windows环境安装配置_开着拖拉机回家的博客-CSDN博客

Python系列之变量和运算符_开着拖拉机回家的博客-CSDN博客

Python系列之判断和循环_开着拖拉机回家的博客-CSDN博客

Python系列之字符串和列表_开着拖拉机回家的博客-CSDN博客

Python系列之文件操作和函数_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库OS详解_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库re详解_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库json详解_开着拖拉机回家的博客-CSDN博客

Python系列模块之标准库shutil详解_开着拖拉机回家的博客-CSDN博客


参考:

python——数据库操作PyMysql使用详解_南京丛林Jungle的博客-CSDN博客


http://www.ppmy.cn/news/142501.html

相关文章

ShowMeBug 持续升级,提供高信效度支撑的技术招聘方案

去年年底,全新升级版的 ShowMeBug ——一款支持实战编程的技术能力评估平台,首次揭开了它神秘的面纱。 而近日,ShowMeBug 再次迎来一系列产品更新,它将以全新的面貌,提供高信效度支撑的技术招聘方案,持续助…

30天从入门到精通TensorFlow1.x第一天,如何创建张量

文章目录 一、TensorFlow基本概念1. 什么是TensorFlow2. TensorFlow的组成3. TensorFlow的三个重要模型 二、TensorFlow的重要底层库1. 先简单来个 helloWord2. 张量什么是张量如何创建张量创建张量(1). 通过定义常量来进行创建张量(2&#x…

SpringCloud微服务踩坑系列:UnknownContentTypeException

错误信息如下: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.cyf.internalCommon.dto.ResponseResult] and content type [text/plain;charset…

vueRouter mode模式不同 页面刷新

vueRouter 模式为hash 浏览器地址改变 会使页面刷新 , history 模式 浏览器地址改变 页面不会刷新 路由鉴权 如果登入后 不允许进入登入页 路由模式就要是hash 这样在浏览器地址改变的时候,就不会刷新页面 登入后 用户类别存在vuex中 ,就可以…

(字符串) 541. 反转字符串 II——【Leetcode每日一题】

❓541. 反转字符串 II 难度:简单 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大…

现在润新加坡是个好主意吗?

作者 | 梁唐 出品 | 公众号:Coder梁(ID:Coder_LT) 大家好,我是梁唐。 上次写了一篇从新加坡回国的文章之后,引来的反响还不小。不少同学看了文章之后留言问我,怎样才能去新加坡工作,…

博弈论-第二章 基本假设

1.博弈基于人的理性 认知理性:自我利益的判断者 对偏好的认知 行为理性:自我利益的追求者 利益最大化 2.不同的参照 不同的选择 人在做选择的时候总会比较,不同的参照会影响比较的结果,从而影响人的选择 当增加了一个印刷版的…

计算机在家电中的用途,计算机技术在信家电中的运用11.doc

计算机技术在信家电中的运用11 关于“计算机技术在信息家电中的运用”的检索报告 信管091、赵月萍、209090704 一、分析研究课题(黑体四号) ***************************************************(正文,宋体五号) 信息家电 (3C 或IA: HYPERLINK "/d…