本文来说下mysql存储过程中光标的使用

文章目录

  • 光标的基本概念
    • 声明光标
    • 打开光标
    • 使用光标
    • 关闭光标
  • 光标使用实例
  • 本文小结

光标的基本概念

查询语句可能返回多条记录,如果数据集非常大,需要在存储过程中使用光标来逐条读取查询结果集中的记录。光标必须在声明处理程序之前被声明,并且变量和条件在光标之前。

声明光标

语法格式如下:declare cursor_name cursor for select_statement

cursor_name:光标名;select_statement:select语句的内容,返回一个用于创建光标的结果集。

declare cursor_fruit cursor for select fname,fprice from fruits;

打开光标

语法格式如下:open cursor_name(光标名称)

open cursor_fruit;

使用光标

语法格式如下:fetch cursor_name into var_name [,var_name]…{参数名称}

var_name:参数表示光标中的select语句查询出来的信息存入该参数中,必须在声明光标之前定义好。

fetch cursor_fruit into fruit_name,fruit_price;

关闭光标

/*close cursor_name */
close cursor_fruit;

光标使用实例

在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。游标在部分资料中也被称为光标。

关系数据库管理系统实质是面向集合的,在 MySQL 中并没有一种描述表中单一记录的表达形式,除非使用 WHERE 子句来限制只有一条记录被选中。所以有时我们必须借助于游标来进行单条记录的数据处理

一般通过游标定位到结果集的某一行进行数据修改。

结果集是符合 SQL 语句的所有记录的集合。

个人理解游标就是一个标识,用来标识数据取到了什么地方,如果你了解编程语言,可以把他理解成数组中的下标。

不像多数 DBMS,MySQL 游标只能用于存储过程和函数。

程序实例

CREATE DEFINER=`tmis`@`%` PROCEDURE `get_employee_info`()
begindeclare employeeCode varchar(30) default "";declare employeeName varchar(30) default "";-- 声明光标declare cursor_employee cursor for select employee_code,employee_name from employee_info;-- 打开光标open cursor_employee;-- 使用循环遍历得到用户的编码和名称信息while(employeeCode is not null)do-- 使用光标fetch cursor_employee into employeeCode,employeeName;select employeeCode;select employeeName;end while;-- 关闭光标close cursor_employee;
end

本文小结

本文详细介绍了mysql中光标相关的知识与内容,并且编写了一个对应光标使用的实例

mysql存储过程中光标的使用相关推荐

  1. MySQL存储过程:利用游标+临时表实现查询

    MySQL存储过程使用游标.临时表实现动态SQL查询 2020.3.24 用能第二周周二上午,任务需求:编写存储过程查询监测设备状态以及目标监测设备状态.(任务完成) 改存储过程包含了大量相关知识,特 ...

  2. mysql 存储过程详解

    前言 在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表.C表甚至其他更多表的数据,为什么会这样呢? 在真实的业务场景中,往往一张表的数据关联的业务是多样的,举例来说,用户 ...

  3. 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码

    mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...

  4. MySQL 存储过程传参之in, out, inout 参数用法

    存储过程传参:存储过程的括号里,可以声明参数. 语法是 create procedure p([in/out/inout] 参数名  参数类型 ..) in :给参数传入值,定义的参数就得到了值 ou ...

  5. mysql中leave和_MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法

    本文主要向大家介绍了MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. DELIMITER ...

  6. MySQL存储过程详解

    1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...

  7. mysql存储过程语法及实例

    存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...

  8. mycat mysql 存储过程_MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程...

    1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  330 ...

  9. mysql 存储过程 格式化_转 mysql 存储过程初探

    https://www.cnblogs.com/qmfsun/p/4838032.html MySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/ ...

最新文章

  1. Dremel - Interactive Analysis of WebScale Datasets
  2. MySQL 8.0 新特性之统计直方图
  3. jq实现点击导航栏中的任意一个跳转后被点击的定位到第一个
  4. 【php】基础学习3
  5. 手把手教你写Linux I2C设备驱动
  6. Grub2主题修改和美化--------LinuxWindows
  7. mysql 主从备份问题_我遇到的mysql主从同步的问题
  8. linux java占用199%,linux分区使用率过高又查询不到被哪些文件占用的问题
  9. 揭秘:微信如何用libco支撑8亿用户?
  10. 音创ktv点歌系统服务器,音创ktv点歌系统家庭版
  11. 多彩M618鼠标 拆解相关
  12. [翻译]Exploiting CVE-2015-0057 ——Part 1
  13. 控制元素到达可视区域内触发动效
  14. 在 JavaScript 中访问对象属性的 3 种方法
  15. MAME模拟器debug帮助文档汉化二(常规指令)
  16. 云里黑白第八回——msconfig诊断启动,这辈子都不敢用了o(╥﹏╥)o出现问题,你的PIN不可用,禁用服务
  17. vite打包分析插件rollup-plugin-visualizer
  18. g代码生成器 源代码_如何生成源代码?
  19. 量子力学顺口溜_圆周率前五百位背诵顺口溜
  20. GitHub 2020 报告:全球开发者工作与生活平衡情况年度分析

热门文章

  1. [uni-app]聊天App实例
  2. 【java】查重类的实现
  3. seo文章优化(怎么样做好伪原创文章)
  4. 最大熵模型(MaxEnt)解析
  5. 多线程模式下保证事物的一致性
  6. 索骥馆-编程语言之《算法引论-一种创造性方法》扫描版[PDF]
  7. 【亲测已解决】CentOS7 ifconfig commend not fount(命令找不到)
  8. LPDDR5 JEDEC
  9. 5.PS-快速选择和魔棒
  10. java 高内聚低耦合_高内聚低耦合法则实例解析