返回顶部
首页 > 资讯 > 后端开发 > Python >Python从Oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析
  • 218
分享到

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

数据库oraclepython 2023-10-03 06:10:44 218人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

python从oracle数据库中获取数据——fetchall(),fetchone(),fetchmany()函数功能分析 一、fetchall(),fetchone(),fetchmany()简单

pythonoracle数据库中获取数据——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

--结束END--

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

本文链接: https://lsjlt.com/news/422897.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作