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

news2024/11/29 0:37:42

目录

一、安装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)):
    # 查询SQL
    selectSQL = """
        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.coloradmin.cn/o/597620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb13(ajax01)

目录 一. 什么是ajax 二.为什么需要AJAX? 三. 同步和异步的区别. 四.基于jQuery实现AJAX语法 4.1 语法1-$.ajax(url,[settings]). 4.1 语法2-$.get/post(url, [data], [callback], [type]). 五 .案例 5.1 ajax实现登录 ①html代码 用户登录 用户名: 密码…

Linux安装VNC(Linux桌面版远程)

一、Linux安装VNC服务 适用于CentOS7 #检查系统没有装GUI界面 rpm -qa | grep gnomeyum -y groupinstall "X Window System" yum -y groupinstall "GNOME Desktop"#安装VNC yum install tigervnc tigervnc-server -y检查开机运行级别 systemctl get-defa…

Shell脚本攻略:数组

目录 一、理论 1.数组概述 2.定义数组 3.数组打印 4.数组的数据类型及处理 5.数组赋值 6.数组遍历 7.数组切片 8.数组替换 9.删除数组 10.追加数组中的元素 11.数组排序算法 二、实验 1.实验一 2.实验二 3.实验三 一、理论 1.数组概述 数组是Shell的一种特殊变…

MySQL InnoDB缓存池

缓存池的作用 缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。 为什么不把所有数据放到缓冲池中 凡事都具备两面性,抛开数据易失性不说,访问快速的反面是存储容量…

MongoDB 基本概念

MongoDB 部署模型 在生产环境中,MongoDB 经常会部署成一个三节点的复制集,或者一个分片集群。 我们先来看左边,当 MongoDB 部署为一个复制集时,应用程序通过驱动,直接请求复制集中的主节点,完成读写操作。另…

前端学习(DAY51)面试1

组件中的 data 为什么是一个函数? 如果 data 是对象的话,当数据改动时就会影响到所有的实例,可能会造成一些数据的冲突。 HTTP http:以安全为目标的http通道,HTTPs是以安全为目标的https通道(使用SSL进…

Linux--ServerProgramming--(3)详解高性能服务器程序框架

1. 服务器框架详解 1.1 服务器模型 1.1.1 C/S 模型 此模型很简单,就是服务器和客户端。 此模型 非常适合资源相对集中的场合。 缺点:因为服务器是通信的中心,当访问量过大时,可能所有的客户都将得到很慢的响应。此缺点可由 P2P…

利用PHP导出MySQL数据表结构和SQL文件

目录 一、获取数据库所有的数据表 方法一:TP5 方法二:原生PHP 二、导出指定数据表的数据结构 三、 导出SQL文件 四、生成SQL语句 五、完整代码 前端 后端 语言:PHP 数据库:MySQL 功能:分为四部分,① 查出数…

智大数据比赛的总结

强国杯个人赛一定要报 hive 和hadoop基础环境配置 开启单节点集群环境 (0 / 10 分) 本次使用环境为单节点集群,对应主机名为hadoop000,使用工具连接对应主机并进行相关操作。 环境中已经安装java、Hadoop、Hive、Mysql并配置对应环境变量,安装路径为/root/software/,对应…

通过python采集关键字搜索1688工厂数据接口,1688工厂数据接口,1688API接口

1688是一个行业网站,主要提供中小型批发和生产商的信息,是中国供应商向全球采购商展示其产品的平台。在1688上,可以找到许多工厂和制造商的信息,包括公司名称、地址、联系人、联系方式、主要产品等。 采集1688工厂数据可以帮助采…

MySQL数据库 2.启动与停止

目录 ​编辑 🤔 启动与停止: 🙂1.WIN加R调用windows命令行,输入:services.msc 🙂2.可以在cmd(管理员模式)中输入以下指令: 🤔 启动MySQ后的操作步骤&…

linux安装tomcat8

1.tomcat8下载 https://tomcat.apache.org/download-80.cgi 2.tomcat8安装 (1)将tomcat jar上传到usr/local目录 (2)解压tomcat压缩包 [rootiZ2ze7vthdl3oh0n0hzlu7Z local]# tar -zxvf apache-tomcat-8.5.58.tar.gz&#x…

开发小程序过程中的兼容难题,应当何去何从?

如今小程序开发已经成为了互联网行业发展的主流,而小程序开发过程中的兼容难题也让许多开发者感到头疼。那么小程序开发过程中兼容问题究竟有哪些,该如何解决?下面我们就针对这个问题展开一下分析。 什么是小程序? 小程序是一种无…

为什么魂斗罗只有 128KB 却可以实现那么长的剧情

经常看到有同学在抱怨现在的游戏、APP占用非常大的空间,基本都是 10G 起步。 这让我想到初中时玩过的一款游戏魂斗罗,为什么它只有 128KB 却可以实现那么长的剧情呢?这篇文章将会给大家讲讲这里面的奥秘~ 正文 现代程序员 A 和 1980 年代游戏…

小程序安装Vant Weapp详细步骤,下载和npm安装版

小程序安装Vant Weapp详细步骤 使用npm下载1、新建项目并初始化项目2、下载Vant Weapp3、修改 app.json4、构建 npm 包5、引入组件 下载方式1. npm下载或者下载[官方示例](https://github.com/youzan/vant-weapp)2. 把里面的dist文件夹复制出来,放到项目的根目录&am…

MKS SimpleFOC ESP32 例程7 双电机电流控制

Makerbase ESP32 FOC 例程7 双电机电流控制 第一部分 硬件介绍 1.1 硬件清单 序号品名数量1ESP32 FOC V1.0 主板12ARDUINO UNO主板23MKS SF2804电机1412V电源适配器15USB 线1 注意:YT2804是改装的云台无刷电机,带有AS5600编码器,可实现360连续运转。…

恒流间歇滴定法(GITT)测试锂离子电池的实验流程

恒流间歇滴定法(GITT)测试锂离子电池的实验流程 锂电池作为现代电子设备中最常用的电源之一,其性能和安全性对于设备的正常运行至关重要。恒电流间歇滴定法是一种常用的测试方法,用于评估锂电池的容量、循环寿命和内阻等关键参数。…

黄色荧光染料:1811539-32-8,JF549,NHS,JaneliaFluor549,SE,JF549琥珀酰亚胺酯

【产品描述】 Janelia Fluor549,SE是一种黄色荧光染料,作为NHS酯提供,用于连接伯胺基。NHS酯部分可以与伯胺特异有效地反应,形成共价酰胺键。NHS活化酯是生物标记反应中常用的活化基团。NHS活化TAMRA分子中的羧基,让它…

Ubuntu pwn环境搭建

文章目录 前言环境准备系统安装安装VMtoolsapt换源安装pip并换源安装pwntools安装gdb插件安装one_gadget安装 LibcSearcher 后记参考 前言 重新装了一下pwn环境,踩到了好多坑,顺便记录一下 环境准备 ubuntu 20.04,可以到镜像站下载&#x…

[CTFTraining] 0CTF 2016 Unserialize

​ 打开环境后是这样: ​ 找了挺多地方没啥头绪,干脆直接上dirsearch: ​ 发现有源码泄露,直接下载下来分析。先进行自动审计: ​ 发现有疑似的漏洞,但根据题目来看是反序列化的,还是要自行进…