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

news2024/10/6 0:18:42

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012523.html

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

相关文章

DelayQueue源码分析

底层 DelayQueue 是 JUC 包(java.util.concurrent)为我们提供的延迟队列,用于实现延时任务比如订单下单 15 分钟未支付直接取消。它是 BlockingQueue 的一种,底层是一个基于 PriorityQueue 实现的一个无界队列,是线程安全的。默认情况下, De…

UG\NX二次开发 二维向量相加

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 二维向量相加 效果: 代码: #include "me.hpp"void doIt() {const double vec1[2] = { 1.0,2.0 };const double vec2[2] = { 2.0,2.…

高效成绩查询系统助力,让学校管理事半功倍

各位老师们,大家好!作为教育工作者,我们都了解成绩查询在学校管理中的重要性。然而,传统的查询方式往往繁琐耗时,给我们带来了不少困扰。因此,今天我将向大家介绍一个极其便捷的查询工具,能够帮…

VR云游:让游客足不出户享受旅行的乐趣

随着人们的生活水平不断提高,对于旅行的需求也在日益增长,既要玩的舒心,也要享受的舒服,因此VR全景云游就成为了一种新型的旅行方式,人们足不出户就可以沉浸式游览各地自然风光与名胜古迹。 VR云游景区是一种全新的旅游…

反渗透,sql注入漏洞扫描工具

工具一:zap 下载地址:ZAP GitHub OWASP Zed 攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者积极维护。它可以帮助你在开发和测试应用程序时自动查找 Web 应用程序中的安全漏洞。可以说 ZAP 是一个中…

百货店失去核心竞争力了吗?全靠超市即时零售撑起

近年来,传统百货不景气,不过,从今年上半年的情况看,似乎有些好转。 然而,实际情况并不如预期那么好,有专家认为:“百货上市公司业绩和去年相比增长是正常的。实际上,百货业态增长的…

陪诊系统|陪诊软件为用户提供多元化的医疗服务

陪诊小程序作为一种人性化的医疗工具,具备多种功能。首先,它可以预约挂号。患者只需通过简单的操作,即可轻松选择合适的医生和挂号时间,免去了排队等待的繁琐过程。其次,陪诊小程序为患者提供了在线问诊的渠道。通过平…

企业怎么管理自己固定资产的

在当今的商业世界中,企业的固定资产是其生存和发展的基础。然而,仅仅关注这些有形的资产,如土地、建筑和设备,可能会忽视企业最宝贵的资产——人力资源和知识。因此,成功的企业不仅需要管理好自己的有形资产&#xff0…

小白学Unity03-太空漫游游戏脚本,控制飞船移动旋转

首先搭建好太阳系以及飞机的场景 需要用到3个脚本 1.控制飞机移动旋转 2.控制摄像机LookAt朝向飞机和差值平滑跟踪飞机 3.控制各个星球自转以及围绕太阳旋转(rotate()和RotateAround()) 1.控制飞机移动旋转的脚本 using System.Collections; using…

Hypotenuse AI:AI文本生成工具

【产品介绍】​ 名称 Hypotenuse 成立时间​ 2020年 具体描述 Hypotenuse AI是一种文本生成工具,它使用人工智能来帮助您生成相关内容。如果您从事数字营销、联盟营销、文案撰写或博客写作,您就会了解创建顶级内容的重要性。Hypotenus…

华为HCIA(四)

链路聚合可以负载分担,增加带宽,提高可靠性 Eth-trunk的传输速率和成员端口数量喝带宽有关 路由器分割广播域,交换机分割冲突域 指定端口:DP;根端口:RP;阻塞端口:AP 如果目的MAC不在交换机MAC中&…

PHP8中字符串与数组的转换-PHP8知识详解

在php8中使用explode()函数和implode()函数实现字符串和数组之间的转换。 1、使用explode()函数把字符串按照一定的规则拆分为数组中的元素&#xff0c;并且形成数组。 使用explode()函数把字符串转换数组&#xff0c;示范代码&#xff1a; <?php $string "html,cs…

Java操作Influxdb2.x

本片文章不讲怎么安装&#xff0c;只讲安装后如何用JAVA代码操作库表 1.创建数据库2.为bucket添加TELEGRAF配置3.TELEGRAF配置参数说明4.配置数据库的访问权限API TOKENS5.JAVA代码操作库表5.1 yaml5.2 pom依赖5.3 config5.4 controller5.5 查询方法、结果集提取方法 1.创建数据…

Dataworks实现接口调用

RestAPI调用 功能&#xff1a;实现Restful风格的API调用 步骤一&#xff1a;配置RestAPI数据源&#xff0c;在url中填Restful风格的url&#xff0c;若是需要账号密码登录等可以切换“验证方法” 步骤二&#xff1a;在离线同步中创建离线同步任务&#xff0c;数据来源选择配置…

windows环境变量滥用维权/提权

本文转载于&#xff1a;https://bbs.zkaq.cn/t/31090.html 0x01 前提 通过滥用系统的路径搜索机制来欺骗高权限用户执行看似合法的系统二进制文件&#xff0c;实际上是恶意的代码或程序&#xff0c;从而导致升权限并执行恶意操作。 攻击的关键前提&#xff1a; 路径搜索顺序&am…

联合华为“围剿”苹果,他笑得憋都憋不住

作者&#xff1a;狗蛋 螳螂观察快评&#xff1a;联合华为围剿苹果&#xff0c;荣耀总裁赵明笑得憋都憋不住&#xff0c;离开华为的荣耀过得怎么样了&#xff1f;#华为 #荣耀发布会 #赵明 #苹果开售 #中国芯片 华为5g手机王者归来&#xff0c;苹果慌了&#xff0c;其他友商也慌…

【论文记录】Boosting Detection in Crowd Analysis via Underutilized Output Features

Boosting Detection in Crowd Analysis via Underutilized Output Features Abstract Crowd Hat使用一种混合的2D-1D压缩技术进行细化空间特征与获取特定人群信息的空间和数量分布。进一步的&#xff0c;Crowd Hat采用自适应区域的NMS阈值与一个解耦然后对齐的范式来解决基于…

C++【视频笔记个人思考_Wang】

时间进度C是什么&#xff1f;多态什么是多态&#xff1f;生活中的多态C中的多态 赋值兼容赋值兼容规则实现安全转换 时间进度 Day101 ok Day804 ok Day805 ok C是什么&#xff1f; C大部分包含C语言。 C完全兼容C语言。 C在C语言的基础上添加&#xff1a;封装、继承、多态…

代码混淆和加固,保障应用程序的安全性

摘要&#xff1a;本文将详细介绍iOS技术博主在保护应用程序代码安全方面的两种重要方式&#xff1a;代码混淆和代码加固。通过代码混淆和加固&#xff0c;博主可以有效防止他人对应用程序进行逆向工程和篡改&#xff0c;提高应用程序的安全性。 引言&#xff1a;作为iOS技术博…

嵌入式Linux驱动开发(I2C专题)(六)

完善虚拟的I2C_Adapter驱动并模拟EEPROM 参考资料&#xff1a; Linux内核文档: Linux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txtLinux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yaml Linux内核驱动程序&#xff1a;使用GPIO模拟I2C Linux-4.9.…