MySQL游标(cursor) 定义及使用

概念

游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。 
使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。

用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。

游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。

优点

1、允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。

2、提供对基于游标位置的表中的行进行删除和更新的能力。

3、游标实际上作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。

原理

游标就是把数据按照指定要求提取出相应的数据集,然后逐条进行数据处理。

使用游标的顺序

 声名游标、打开游标、读取数据、关闭游标、删除游标。

使用游标(cursor)

1.声明游标

DECLARE cursor_name CURSOR FOR select_statement
这个语句声明一个游标。也可以在子程序中定义多个游标,但是一个块中的每一个游标必须有唯一的名字。声明游标后也是单条操作的,但是不能用SELECT语句不能有INTO子句。

2. 游标OPEN语句

OPEN cursor_name       这个语句打开先前声明的游标。

3. 游标FETCH语句

FETCH cursor_name INTO var_name [, var_name] ...这个语句用指定的打开游标读取下一行(如果有下一行的话),并且前进游标指针。

4. 游标CLOSE语句

CLOSE cursor_name  这个语句关闭先前打开的游标。

特性

1,只读的,不能更新的。
2,不滚动的
3,不敏感的,不敏感意为服务器可以活不可以复制它的结果表

游标(cursor)必须在声明处理程序之前被声明,并且变量和条件必须在声明游标或处理程序之前被声明。

delimiter $$
create procedure pa(out sum bigint)begindeclare iii int;declare done int default 0;# 1、游标的定义declare c_person cursor for select id from randtable;# 捕获系统抛出的 not found 错误,如果捕获到,将 done 设置为 1  相当于try异常declare continue handler for not found set done=1;set sum=0;# 2、打开游标open c_person;www:loop# 3、使用游标fetch c_person into iii;# 如果发生异常if done = 1 thenleave www;end if ;set sum = sum +iii ;end loop ;# 4、关闭游标close c_person;end $$delimiter  ;-- 调用
set @sum = 0;
call pa(@sum);
select @sum;

View Code

posted @ 2018-09-19 22:34 韦邦杠 阅读(...) 评论(...) 编辑 收藏

MySQL游标(cursor) 定义及使用相关推荐

  1. mysql游标修改数据库,数据库游标之mysql游标的定义和使用

    游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制,游标充当指针的作用, 尽管游标能遍历结果中的所有行,但一次只指向一行,游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行 ...

  2. Mysql游标的定义与使用

    1.游标的作用: 1.1 如果你前面看过mysql函数,会发现无法使用返回多行结果的语句.但如果你又确实想要使用时,就需要使用到游标,游标可以帮你选择出某个结果(这样就可以做到返回单个结果). 1.2 ...

  3. django mysql 游标,MySQL Cursor 存储过程之游标与相关循环

    简单介绍游标 在检索出来的行中,前进或者后退一行或多行,就需要用到所谓的"游标". 游标不是某个SELECT语句,但是它是被该语句检索出来的结果集. 几个特点: ·MySQL游标只 ...

  4. 游标cursor,游标循环和记录变量的定义

    1.游标 游标使用分为四步骤. a.声明游标 cursor 游标名(参数1 数据类型[,参数2 数据类型]) b.打开游标 open 游标名[(实际参数1[,实际参数2.........])]: c. ...

  5. mysql游标示例mysql游标简易教程

    从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键),灾难恢复能力等等. ...

  6. mysql 游标循环_mysql for循环遍历 游标用处

    以前一直不知道游标的作用,之前的结果集遍历 博主一直用的是记录查询出来的记录总数并一条条用LIMIT 1 OFFSET index 进行查找,并进行处理的. 现在终于会使用游标了,献上一个小例子供大家 ...

  7. mysql游标进阶_mysql进阶(三)游标简易教程

    mysql游标简易教程 从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键 ...

  8. 什么是mysql的游标_MySQL游标概念是什么 MySQL游标概念与用法介绍

    本篇文章小编给大家分享一下MySQL游标概念与用法介绍,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1.游标的概念(Cursor) 一条sql,对应N条资源,取出资源的接 ...

  9. mysql游标遍历中sql语句出现异常_MySQL中的异常处理,游标

    一.异常处理的理解 ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY' 错误 4位error code(5位sql statis):错误 ...

  10. mysql游标的用法及作用_Mysql 游标的用法及其作用

    mysql 游标的用法和作用,话不多说,这个是网上看到的例子,简答粗暴. 例子: 当前有三张表a.b.c其中a和b是一对多关系,b和c是一对多关系,现在需要将b中a表的主键存到c中: 常规思路就是将b ...

最新文章

  1. java struts2 excel上传_Java Struts2 实现数据库数据导出Excel文件
  2. Objective-C中使用方法名调用方法
  3. html div比例,我的前端组件 ---- 16:9固定宽高比例的div
  4. Android之文件数据存储
  5. chromedp网络监听_动态爬虫三:监听网络事件 + 监听js事件
  6. could not export python function call Remove calls to Python functions before export
  7. java虚拟机调用linux_Java虚拟机字节码执行引擎
  8. oracle_修改连接数
  9. P3865 【模板】ST表
  10. gradle使用maven_使用Gradle – 2019版从Travis可靠发布到Maven Central
  11. excel转html中文乱码,英文系统中Excel中文乱码问题
  12. python高效编程15个利器_15个Python库,让你学习编程更轻松!
  13. vs新建一个excelpackage时间太长_炖牛肉vs煎牛肉,前者几小时后者几分钟,大厨告诉了我原因...
  14. Thinkpad x230 win7/xp 双系统安装全过程
  15. qcc300x笔记之固件升级(六)
  16. 43.一维卷积-航空公司评论情感预测
  17. 地外水平/斜面的太阳理论辐照度计算及其python实现
  18. 【观察】广州供电局:能源行业产业生态变革新标杆
  19. webpack的source-map的详解
  20. 阿里云服务器租用收费标准(精准费用报价更新)

热门文章

  1. Boruta特征筛选
  2. 开源爬虫框架各有什么优缺点?
  3. 中rsa非对称加密_HTTP的数据传输中,对称加密和非对称加密的区别是什么?
  4. shell 提取sql 的字段名表名_Mysql常用SQL语句集锦 |建议转发收藏
  5. 区块链 solidity 零知识证明DApp开发实践【身份证明/以太坊】
  6. 领域搜索算法 是什么 和遗传算法、模拟退火算法、禁忌搜索算法、模糊优化 算法、微粒群算法关系
  7. Hyperledger Fabric教程(14)--动态添加组织的步骤
  8. 区块链 什么是DAPP
  9. 基于SSM的驾校网站
  10. 深度神经网络反向传播算法