首页 > 数据库 >python如何操作mysql

python如何操作mysql

时间:2024-09-22 18:46:48浏览次数:1  
标签:记录 python 游标 pymysql cursor mysql print 操作 conn

首先要通过pip install pymysql安装一个pymysql模块
直接上代码:

import pymysql
#连接数据库
conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='root',db='test')
#创建游标
cursor=conn.cursor()
#创建一张表
# sql="create table my_table(id int,name varchar(20))"
# cursor.execute(sql)

#向表中插入数据
# sql="insert into my_table values(1,'jack'),(2,'rose')"
# cursor.execute(sql)
ret=cursor.execute("select * from my_table")
#结果返回的是表中一共有几条记录
print(ret)

#拿到第一条记录
print(cursor.fetchone())
#拿到前三条记录
print(cursor.fetchmany(3))
#拿到所有记录
print(cursor.fetchall())
#提交
conn.commit()
cursor.close()
conn.close()

输出结果:
4
(1, 'jack')
((2, 'rose'), (1, 'jack'), (2, 'rose'))
()

哎,你发现问题了没有?为什么我执行cursor.fetchall()并没有拿到表中所有记录呢?应该拿到4条记录才对,因为前面插入了4条记录。
原因在于cursor是游标,也可以理解为光标,下面这两条语句已经把所有的记录都拿走了
> #拿到第一条记录
> print(cursor.fetchone())
> #拿到前三条记录
> print(cursor.fetchmany(3))
轮到cursor.fetchall()的时候就空了。

再介绍一个知识点,前面提到游标因为移动,导致最后cursor.fetchall()拿到的结果是空,那么有没有办法让游标回到初始位置或者我指定位置呢?
当然有,python就是这么牛逼带闪电,大招来了,阁下看清楚了。

假设此时游标在第二条记录那里,想回到原点,代码如下:
cursor.scroll(-1,mode="relative") --相对游标,这里-1代表向前移动
cursor.scroll(0,mode="absolute") -- 绝对游标,这里的0代表第一个位置,如果是1就代表第二个位置,就跟python中索引差不多。


再补充一个知识点,前面创建游标语句cursor=conn.cursor()默认操作后的结果是元组,可以加参数改成字典。
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)

标签:记录,python,游标,pymysql,cursor,mysql,print,操作,conn
From: https://www.cnblogs.com/kkbest/p/18425576

相关文章

  • python-爬虫入门
    前言:由于个人负责的运维组,其中有个同事每回在某个项目发版更新后,需手动在k8s容器平台web界面上复制出几百个微服务的名称以及镜像版本等信息,用来更新微服务清单,个人决定抽时间写个爬虫脚本自动完成手动执行的任务。由于公司信息需保密,这里介绍个简单入门的爬虫脚本做为范例。Pyth......
  • 强化学习基础:主要算法框架与Python实现示例
    创作不易,您的打赏、关注、点赞、收藏和转发是我坚持下去的动力!强化学习(ReinforcementLearning,RL)是一种通过与环境交互来学习策略的机器学习方法。RL主要包含以下几个关键组件:状态(State)、动作(Action)、奖励(Reward)、策略(Policy)和价值函数(ValueFunction)。常见的强化学习主流......
  • mysql安装(windows-mysql-8.1.0-winx64.zip安装)
    1、官网下载,解压缩2、配置环境变量3、新增my.ini文件,根据电脑环境修改配置 #设置mysql的安装目录 basedir #设置mysql数据库的数据的存放目录 datadirmy.ini文件内容如下:[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=D:\kaifa\mysql-8.1.0-winx6......
  • Python语言的基本要素
    1.Python的语句(1)程序语句中,所有的字符都必须是英文字符(半角),不能是中文字符(全角)。(2)"#"后是注释,注释的内容不执行。("ctr+/"可加多行注释)2.常量(1)常量表示固定不变的数据(值)(2)常见常量有:数值型(整数)、字符串、布尔型(true表示真、false表示假)、空(None表示啥也不是)3.变量(1)变量是......
  • MySQL数据库知识
    1.在编程中,数据库的内容非常重要。2.**语句的执行顺序:**selectfromwheregroupbyhavingorderby--是这个顺序吗?不是。MySQL执行语句的顺序是:fromwhereselectgroupbyhavingorderby3.orderby排序,默认升序asc降序desc4.groupby分组查询--注意:按分组......
  • MySQL 的 ACID 属性:保障数据完整性的基石
    《MySQL的ACID属性:保障数据完整性的基石》在数据库领域,MySQL以其强大的功能和广泛的应用而备受青睐。其中,ACID属性是MySQL保证数据完整性和可靠性的重要特性。那么,什么是MySQL的ACID属性呢?它又是如何在实际应用中发挥作用的呢?让我们一起来深入了解一下。一、ACID属性......
  • MySQL 优化器:理解与探秘
    在MySQL数据库的世界里,优化器扮演着至关重要的角色。它就像是一位幕后的魔法师,默默地为数据库的高效运行贡献着力量。那么,MySQL优化器究竟是什么?它又是如何工作的呢?让我们一起来揭开它的神秘面纱。一、MySQL优化器是什么?MySQL优化器是数据库管理系统中的一个核心组件......
  • 书生大模型实战(从入门到进阶)L0-Python
    目录Python实现WordCountVscode连接InternStudiodebugdebug单个python文件在vscode使用命令行进行debug本文是对书生大模型L0-Python部分的学习和实现,学习地址如下:学习地址:‬​​​​⁠​​‌⁠‍⁠​‬​​​​​​​⁠‬​​​⁠​​‌​​​​​‍​​​⁠​​​学......
  • MySQL 中的全文索引:强大的文本搜索利器
    《MySQL中的全文索引:强大的文本搜索利器》在MySQL数据库中,全文索引是一种非常有用的功能,它可以帮助我们快速地在大量文本数据中进行搜索。那么,什么是MySQL中的全文索引呢?它又是如何工作的呢?让我们一起来深入了解一下。一、什么是全文索引?全文索引是一种特殊类型的索引,它允......
  • MySQL数据库备份和恢复
    一、MySQL数据库备份使用mysqldump命令(逻辑备份)语法备份单个数据库:mysqldump-uusername-pdatabase_name>backup_file.sql例如,如果要备份名为mydb的数据库,用户名为root,执行命令mysqldump-uroot-pmydb>mydb_backup.sql。然后系统会提示输入密码,输入正确密码......