当前位置: 首页 > news >正文

Python+pymysql中select count(*)/select *使用方式

1、问题概述?

在Python脚本中,我们通过:

1、使用select * from 查询返回多条数据

2、使用select count(*)返回单个数据

但是这两种在使用上略有不同,需要注意

使用pymysql之前需要先安装

pip install pyMySQL

2、select * 语句的使用及取值

当返回值为多条的时候使用cursor.fetchall()

def 连接数据库函数():conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')cursor = conn.cursor()sql = 'select * from `student`  where  sex=""  AND name="Android" 'cursor.execute(sql)list = cursor.fetchall()conn.close()print(list)return list

取值方式

for循环便利后,取值通过数组方式进行取值,索引从0开始。

if __name__ == '__main__':list=连接数据库函数()for data in list:print("输出指定的参数:",data[0])

3、select count(*)语句的使用及取值

如果查询的结果返回的是单条数据使用cursor.fetchone()

def 查询表格中数据的条数():conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')cursor = conn.cursor()sql = 'select count(*) from `student'cursor.execute(sql)count = cursor.fetchone()conn.close()return count[0]

取值方式

由于返回的就是数据的条数,直接使用即可。

4、其他语句的使用方式

4.1、update和delete语句的使用方式

修改动作需要使用commit进行提交操作

发生异常通过conn.rollback()回滚

def 测试demo(id,name):conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')cursor = conn.cursor()sql='update `student` set name="'+name+'" where id="'+id+'"'cursor.execute(sql)sql2 = 'delete from `class'cursor.execute(sql3)try:conn.commit()print('操作成功')except Exception as e:print("操作失败")conn.rollback()finally:cursor.close()conn.close()

4.2、insert的语句的使用方式

insert的使用与其他基本相同,不能忽略资源的释放动作。

def insertdemp(id....):conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')cursor = conn.cursor()sql = 'insert into student (id,name,sex,age,addr,pwd) values ('"+id+"',.....)' cursor.execute(sql)conn.commit()cursor.close()conn.close()

相关文章:

  • 安装谷歌vue开发工具插件devtools支持vue2
  • linux内核-写时复制之实验+源码分析
  • Ajax 核心知识点全面总结
  • day40- 硬件学习之 51单片机II (中断处理)
  • 【MySQL】MySQL 数据库操作与设计
  • 网络编程TCP与UDP
  • 《开窍》读书笔记9
  • vulnhub-Matrix-Breakout 2 Morpheus
  • 网络NAT是什么
  • Go 语言中的条件判断和for 循环
  • 详解 MyBatis - Plus 服务层设计:让 CRUD 更高效、业务拓展更灵活——补充
  • ArrayList源码分析
  • Arrays.asList() 的不可变陷阱:问题、原理与解决方案
  • 全面理解 JVM 垃圾回收(GC)机制:原理、流程与实践
  • DHCP实战
  • Quick BI 自定义组件开发 -- 第三篇 echart 组件开发图表,使用动态数据
  • 知识图谱和知识库的区别:详细解读
  • react框架-路由的嵌套以及参数传递与编程化
  • 【Golang面试题】开多个线程和开多个协程会有什么区别?
  • 质量小议55 - 搜索引擎与AI
  • 完善网站建设的目的是/苏州百度 seo
  • 如何做产品网站推广/湛江seo推广外包
  • php给一个网站做后台/品牌推广方案范文
  • 广州市政府网站建设与管理规范/收录入口在线提交
  • 企业邮箱注册申请官网/提升神马seo关键词自然排名
  • 广安网站制作设计/醴陵网站制作