
目录
一、简介
1、概念
2、优点
3、原理
二、使用游标
1、声明游标
2、游标OPEN语句
3、游标FETCH语句
4、游标CLOSE语句
三、实例
1、实例1
2、实例2
五、补充
1、概念
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
- 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。
- 游标充当指针的作用。
- 尽管游标能遍历结果中的所有行,但他一次只指向一行。
- 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。
- 游标机制允许用户逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
2、优点
- 允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。
- 提供对基于游标位置的表中的行进行删除和更新的能力。
- 游标实际上作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。
3、原理
游标就是把数据按照指定要求提取出相应的数据集,然后逐条进行数据处理。
1、声明游标
这个语句声明一个游标。也可以在子程序中定义多个游标,但是一个块中的每一个游标必须有唯一的名字
2、游标OPEN语句
3、游标FETCH语句
4、游标CLOSE语句
1、实例1
1.需求
实例说明:编写两个表 sys_user和 user, 编写存储过程,当 两个表的 id 相同时 将 user 表中的 name 更新为 sys_user 中的 user_name
2. sys_user 和 user 表的创建
3. 数据的对比,编写的存储过程会将 user表中的 name 全部更新

4. 存储过程的编写
我们再次对比两张表的数据变化

利用存储过程和游标我们将 user 表的 name 字段进行了 更新。
2、实例2
1.需求:统计 tb_user 表中 香港演员的数量
2.tb_user 表的创建
3. tb_user 表中的数据

4.存储过程的创建
5. 结果

在MySql中,造成游标溢出时会引发mysql预定义的NOT FOUND错误,所以在上面使用下面的代码指定了当引发not found错误时定义一个continue 的事件,指定这个事件发生时修改done变量的值。
所以在循环时加上了下面这句代码:
如果done的值是true,就结束循环。继续执行下面的代码
参考学习:mysql游标的用法及作用 - 霞光里 - 博客园
码迷,mamicode.com!
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/10549.html