文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python从Oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析

2023-10-03 06:27

关注

Python从Oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析

一、fetchall(),fetchone(),fetchmany()简单介绍

fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是()
2、fetchone()函数,它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回None,每次向后抓取一条记录
3、 fetchmany()函数,返回多个元组,返回多条记录(row),需要指定具体返回多少个记录。如fetchmany(2) 返回两条记录,默认则为1

二、fetchall(),fetchone(),fetchmany()详细介绍

下图是我这次学习使用的数据截图:
在这里插入图片描述然后我使用python连接到Oracle数据库,获取游标,编写sql语句。

import cx_Oracleconn = cx_Oracle.connect('yoyo', '123456', '127.0.0.1:1521/yoyo')# 使用cursor()方法获取操作游标cursor = conn.cursor() # 通过游标cur操作execute()方法可以写入纯sql语句s = cursor.execute("""select * from BRAND order by ID asc""")

下面进入正题,先使用fetchall()函数并查看执行结果。代码如下:

# fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是()result1 = s.fetchall()print(result1)

执行结果如下:
在这里插入图片描述
看到执行结果如我们预想的一样,按ID值升序排列获取全部5条记录,就像这个函数的名字一样,fetchall()就是抓取所有数据。

接着,我们再接着加入fetchone()函数,代码如图所示:

import cx_Oracle# 执行以上代码,如果没有产生错误,表明安装成功# 连接数据库,下面括号里内容根据自己实际情况填写conn = cx_Oracle.connect('yoyo', '123456', '127.0.0.1:1521/yoyo')# 使用cursor()方法获取操作游标cursor = conn.cursor()# 通过游标cur操作execute()方法可以写入纯sql语句s = cursor.execute("""select * from BRAND order by ID asc""")# fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是()result1 = s.fetchall()print(result1)# fetchone()函数,它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回None,每次向后抓取一条记录result2 = s.fetchone()result3 = s.fetchone()print(result2)print(result3)

执行结果如下所示:
在这里插入图片描述我们看到因为fetchall()已经把全部5条数据都抓取了,所以再使用fetchone()抓取数据,就会为空,和介绍中的功能完全符合,返回了None

这次我们注释掉fetchall()函数,再次执行如下代码:

import cx_Oracle# 执行以上代码,如果没有产生错误,表明安装成功# 连接数据库,下面括号里内容根据自己实际情况填写conn = cx_Oracle.connect('yoyo', '123456', '127.0.0.1:1521/yoyo')# 使用cursor()方法获取操作游标cursor = conn.cursor()# 通过游标cur操作execute()方法可以写入纯sql语句s = cursor.execute("""select * from BRAND order by ID asc""")# fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是()# result1 = s.fetchall()# print(result1)# fetchone()函数,它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回None,每次向后抓取一条记录result2 = s.fetchone()result3 = s.fetchone()print(result2)print(result3)

执行结果如下所示:
在这里插入图片描述
我们看到这次fetchone()函数抓取到了数据,根据fetchone()函数的功能所说,它是每次返回一个元组,执行一次就向后抓取一次数据,所以执行两次的结果result2和result3获取到的是不同的值。

接着,我们在后面再加入fetchmany()函数,代码如图所示:

import cx_Oracle# 执行以上代码,如果没有产生错误,表明安装成功# 连接数据库,下面括号里内容根据自己实际情况填写conn = cx_Oracle.connect('yoyo', '123456', '127.0.0.1:1521/yoyo')# 使用cursor()方法获取操作游标cursor = conn.cursor()# 通过游标cur操作execute()方法可以写入纯sql语句s = cursor.execute("""select * from BRAND order by ID asc""")# fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是()# result1 = s.fetchall()# print(result1)# fetchone()函数,它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回None,每次向后抓取一条记录result2 = s.fetchone()result3 = s.fetchone()print(result2)print(result3)# fetchmany()函数,返回多个元组,返回多条记录(row),需要指定具体返回多少个记录。如fetchmany(2) 返回两条记录,默认则为1result4 = s.fetchmany(3)print(result4)

执行结果如下图所示:
在这里插入图片描述
在代码中,fetchmany()函数填写的获取数据的条数为3,所以运行结果的最后一行是最后三条记录,一起被显示出来。值得注意的是,fetchmany()函数是接着fetchone()函数抓取数据的,并不是又从回到头开始抓取数据,这在编程时应该被注意。

以上是我的学习分享,有不对的地方敬请读者指正。

来源地址:https://blog.csdn.net/qq_28268527/article/details/128629153

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯