美文网首页
MySQL--游标

MySQL--游标

作者: 吱吱_呀 | 来源:发表于2022-03-11 09:46 被阅读0次

游标是一个存储在MySQL服务器上的数据库查询,是一个结果集。是保存查询结果的一个临时区域。

有时需要在检索出来的行中浅见或后退一行或者多行。这就是使用游标的原因。

MySQL游标只能用于存储过程和函数。

游标的使用:

1.使用前必须先定义游标

2.一旦声明后,必须打开游标以供使用

3.对于填有数据的游标,根据需要检索各行

4.结束游标使用时,必须关闭游标

创建游标

游标用declare创建,并定义相应的select语句

这个存储过程定义了名为ordernum的游标,保存了一个结果集。存储过程处理完后,游标就消失。

打开和关闭游标使用OPEN 和 CLOSE

如果你不明确关闭游标,MySQL会在到达END语句时自动关闭它。

这个存储过程声明、打开和关闭一个游标。但对检索出的数据什么也没做。

使用游标数据

在一个游标被打开后,可以使用FETCH语句分别访问它的每一行。FETCH指定检索什么数据(所需的列),检索出来的数据存储在什么地方。它还向前移动游标中的内部行指针,使下一条FETCH语句检索下一行(不重复读取同一行)。

看一个例子,从游标中检索单个行(第一行)

循环检索数据,从第一行到最后一行

定义了done 变量为布尔值默认为0,通过done来判断是否结束repeat循环。done怎样在结束时被设置为真呢?通过下面语句:

DECLARE  CONTINUE  HANDLER  FOR  SQLSTATE '02000'  SET  done =1;

我查询了一下,这句类似一个默认语句,它所表达的意思是:若没有数据返回,程序继续,并将done设置为真。SQLSTATE ‘02000’ 是一个未找到条件。这个语句等价于

DECLARE  CONTINUE  HANDLER  FOR  NOT FOUND SET done =1;

注:declare语句存在特定次序。用declare语句定义的局部变量必须在游标或句柄(handle)之前定义,句柄必须在游标之后定义。

相关文章

  • MySQL--游标

    游标是一个存储在MySQL服务器上的数据库查询,是一个结果集。是保存查询结果的一个临时区域。 有时需要在检索出来的...

  • MySQL--游标二

    把前面的内容组织起来,我们看一个进一步修改的游标存储过程样例(用到了前面创建过的存储过程OT) 这个存储过程保存每...

  • MongoDB之文档游标

    游标 查询操作返回的结果游标 游标的迭代与操作 db.collecton.find() 返回一个文档集合游标,在不...

  • sqlserver 游标

    游标更新删除当前数据 1.声明游标 2.打开游标 3.声明游标提取数据所要存放的变量 4.定位游标到哪一行 5.关...

  • Oracle 存储过程学习笔记

    1、存储过程简单实例 2.游标实现方式 显式游标实现方式(可多值) 隐式游标(可以实现查询多值) 带有参数的游标(...

  • sql server 游标

    定位到结果集中某一行 游标分类 静态游标(Static):在操作游标的时候,数据发生变化,游标中数据不变。 动态游...

  • 实验九 游标操作和自定义函数

    一.实验目的: 掌握游标的声明、游标打开、标数据的提取、游标的关闭和游标的释放 掌握标量值函数的定义与调用 掌握内...

  • sql 游标,函数,触发器

    游标是数据库的一种机制或类型,可以存储结果集 ,迭代和遍历结果集,oracle中游标大致分为显示游标和隐式游标。 ...

  • GraphQL(七):GraphQL分页及原理分析

    基于GraphQl-JAVA 11.0 GraphQL的分页是基于游标的,游标分页的方式可以提升用户体验,关于游标...

  • SQL-游标循环记录

    declare @temp_temp int --创建游标 --Local(本地游标) DECLARE a...

网友评论

      本文标题:MySQL--游标

      本文链接:https://www.haomeiwen.com/subject/ezwfdrtx.html