mysql存储过程中光标的使用
本文来说下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存储过程中光标的使用相关推荐
- MySQL存储过程:利用游标+临时表实现查询
MySQL存储过程使用游标.临时表实现动态SQL查询 2020.3.24 用能第二周周二上午,任务需求:编写存储过程查询监测设备状态以及目标监测设备状态.(任务完成) 改存储过程包含了大量相关知识,特 ...
- mysql 存储过程详解
前言 在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表.C表甚至其他更多表的数据,为什么会这样呢? 在真实的业务场景中,往往一张表的数据关联的业务是多样的,举例来说,用户 ...
- 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码
mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...
- MySQL 存储过程传参之in, out, inout 参数用法
存储过程传参:存储过程的括号里,可以声明参数. 语法是 create procedure p([in/out/inout] 参数名 参数类型 ..) in :给参数传入值,定义的参数就得到了值 ou ...
- mysql中leave和_MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法
本文主要向大家介绍了MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. DELIMITER ...
- MySQL存储过程详解
1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...
- mysql存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...
- 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 ...
- mysql 存储过程 格式化_转 mysql 存储过程初探
https://www.cnblogs.com/qmfsun/p/4838032.html MySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/ ...
最新文章
- Dremel - Interactive Analysis of WebScale Datasets
- MySQL 8.0 新特性之统计直方图
- jq实现点击导航栏中的任意一个跳转后被点击的定位到第一个
- 【php】基础学习3
- 手把手教你写Linux I2C设备驱动
- Grub2主题修改和美化--------LinuxWindows
- mysql 主从备份问题_我遇到的mysql主从同步的问题
- linux java占用199%,linux分区使用率过高又查询不到被哪些文件占用的问题
- 揭秘:微信如何用libco支撑8亿用户?
- 音创ktv点歌系统服务器,音创ktv点歌系统家庭版
- 多彩M618鼠标 拆解相关
- [翻译]Exploiting CVE-2015-0057 ——Part 1
- 控制元素到达可视区域内触发动效
- 在 JavaScript 中访问对象属性的 3 种方法
- MAME模拟器debug帮助文档汉化二(常规指令)
- 云里黑白第八回——msconfig诊断启动,这辈子都不敢用了o(╥﹏╥)o出现问题,你的PIN不可用,禁用服务
- vite打包分析插件rollup-plugin-visualizer
- g代码生成器 源代码_如何生成源代码?
- 量子力学顺口溜_圆周率前五百位背诵顺口溜
- GitHub 2020 报告:全球开发者工作与生活平衡情况年度分析