mysql游标书写_mysql中光标如何书写

mysql中光标书写的方法:首先声明光标;然后开启光标,代码为【OPEN cursor_name】;接着捕获光标;最后关闭光标,代码为【CLOSE cursor_name】。

d194d074cfff43f39bb814fbce4c9760.png

本教程操作环境:windows7系统、mysql5.8版,该方法适用于所有品牌电脑。更多相关免费学习推荐:mysql教程(视频)

mysql中光标书写的方法:

1,什么是光标

在存储过程或函数中,可以使用光标对结果集进行循环处理。以下是个人的见解,光标就类似于java循环中的自增变量i。

2,光标的使用

光标的使用包括一下三个步骤:

1,声明光标

格式:DECLARE cursor_name CURSOR FOR select_statement;

cursor_name:光标名,用户自己设定,最好见名知意。

select_statement:完整的查询语句,查询表中的列名(后面案例详解)。

2,开启光标

cursor_name:声明时的光标名。

格式:OPEN cursor_name;

3,捕获光标

格式:FETCH cursor_name INTO var_name...;(...表示可以有多个)

cursor_name:声明时的光标名。

var_name:自定义的变量名。(后面案例详解)

4,关闭光标

格式:CLOSE cursor_name;

cursor_name:声明时的光标名。

3,光标使用的小案例

该案例并没有实际的意义,只是单纯的为了演示光标使用

首先创建一个users表CREATE TABLE `users` (

`u_id` int(4) NOT NULL,

`u_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,

`u_age` int(4) DEFAULT NULL,

PRIMARY KEY (`u_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

插入以下数据

创建一个存储过程,名为select_ageBEGIN

#Routine body goes here...

declare i_user_id int;

declare i_user_age int;

declare cur_age cursor for select u_id,u_age from users;

declare exit handler for not FOUND close cur_age;

set @age_ji = 0;

set @age_ou = 0;

open cur_age;

REPEAT

fetch cur_age into i_user_id,i_user_age;

if i_user_id%2 = 1 THEN

set @age_ji = @age_ji + i_user_age;

else

set @age_ou = @age_ou + i_user_age;

end if;

until 0 end REPEAT;

close cur_age;

END

调用该存储过程call select_age();

select @age_ji,@age_ou;

代码的详细解释:

1,首先定义两个局部变量 i_user_id,i_user_age;用来存放光标遍历的表的列。

2,声明一个光标,遍历users表中的u_id,u_age 两列。

3,声明一个异常,在发生异常时关闭光标。

4,设置两个用户变量用来存储最终结果。

5,开启光标。

6,写一个循环体,终结条件是遍历到表的最后一列。

7,捕获光标,将遍历到的内容放到两个局部变量里面。

8,通过对 i_user_id 的奇偶的判断,分别将i_user_age 加到两个用户变量中

9,关闭光标。

4,注意事项

变量,自定义异常,异常处理,光标都是通过declare关键字定义的,他们之间是有顺序要求的。变量、自定义异常必须放在最前面,然后是光标的声明,最后是异常处理的声明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海女白领吃火锅碰瓷,支付宝口碑居然真的要赔?

昨天中午,新闻晨报在微博上发出一条新闻:上海一位汪小姐吃火锅的时候,因用支付宝口碑扫码中了一个999元大红包,结果因为太激动手机不小心掉进油汤里,捞出来以后开不了机了。关键是这位小姐觉得这是口碑和商家活动导致的…

ASP.NETCore统一处理404错误都有哪些方式?

当未找到网页并且应用程序返回 404 错误时,ASP.NET Core MVC 仅呈现通用浏览器错误页面,如下图所示这不是很优雅,是吗?我们平时看到的404页面一般是这样的还有这样的试了下京东,地址不存在的时候是会重定向到首页下面就…

React Native之组件(Component)生命周期学习笔记

1、Component介绍 一般Component需要被其它类进行继承,Component和Android一样,也有生命周期 英文图片如下 2 具体说明 1)、挂载阶段 constructor() //构造函数,声明之前先调用super(props) componentWillMount()//因为它发生在render()方法前&…

基于junit4的关于个人所得税计算的等价类与边界值_《边界值分析》-有这篇就够了...

目录:定义(What)为什么使用该方法?(Why)如何选定边界值?(How)设计测试用例根据测试用例的完整性划分边界的分类使用场景实战演练边界值分析的优缺点特殊值测试边界值分析…

【Envi风暴】ENVI中求两幅遥感影像的相关性(相关系数)

相关性,是指两个变量的关联程度。一般地,从散点图上可以观察到两个变量有以下三种关系之一:两变量正相关、负相关、不相关。如果一个变量高的值对应于另一个变量高的值,相似地,低的值对应低的值,那么这两个变量正相关。在土壤中,孔隙率和渗透度就具有典型的正相关。反之…

(三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录

. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程 (APUE)…

C# StreamReader类和StreamWriter类

先看看 StreamReader,将前面的示例转换为读取文件以使用 StreamReader。它现在看起来容易得多。StreamReader 的构造函数接收FileStream。使用 EndOfStream 属性可以检查文件的末尾,使用ReadLine 方法读取文本行:public static void ReadFile…

DIV+CSS列表式布局(同意图片的应用)

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <html xmlns"http://www.w3.org/1999/xhtml">3 <head>4 <!--gbk,gb2312 中文-->5 &…

斯皮尔曼等级相关

一、斯皮尔曼等级相关简介 斯皮尔曼等级相关(Spearman’s correlation coefficient for ranked data)主要用于解决称名数据和顺序数据相关的问题。适用于两列变量,而且具有等级变量性质具有线性关系的资料。由英国心理学家、统计学家斯皮尔曼根据积差相关的概念推到而来,一…

用php写一个可以抽取随机数的工具一次只抽四个怎么实现?_面试了一个32岁的程序员,场面一度很尴尬。...

招人背景首先说一下朋友的公司招人背景&#xff0c;公司招聘PHP高级岗位&#xff0c;负责公司的B2B项目研发、并发问题的处理和解决。领导给了他两个要求&#xff1a;&#xff08;接下来的讲述我会以朋友的第一人称来进行&#xff09;&#xff08;1&#xff09;技术比较好&…

React Native之导出

1 React Native里面一般导出函数或者常量或者组件 如果是默认组件或者类(export default修饰)的话,在另外一个地方导入的时候不需要加上{},格式如下 导出 export default class Student {} 导入 import Student from "./file"如果不是默认组件或类或则方法或则变量…

Windows 11 新版 22598 发布!引入 4K 聚焦壁纸,优化全新任务管理器和媒体播放器...

面向 Dev 和 Beta 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 22598。主要变化1.微软宣布媒体播放器应用程序现已更新&#xff0c;进一步适配 Windows 11 的视觉设计。在播放视频时右键将看到全新的菜单&#xff0c;此外还提高了该应用的性…

Mealy状态机的一点理解

在Mealy状态机中&#xff0c;输出是由输入和现态决定的。而状态机的次态是由输入的变化和现态决定的。这个特点决定了再verilog中实现的方式。建议简单的状态机就使用两段式always结构。 一个always中进行状态的转换&#xff0c;一个always中进行输出状态的变化。 刚刚已经说过…

js运行机制

说到js的运行机制&#xff0c;那么就要先从几个名词开始&#xff0c;这是为了让更多的人能看懂。如下&#xff1a;进程和线程&#xff1a;进程&#xff1a;进程是正在运行的程序的实例。程序关于数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#…

javafx 推箱子小游戏object类_突破LeetCode Hard模式之《推箱子》

导读&#xff1a;算法哥好久没分享有趣的算法题了&#xff0c;有点寂寞空虚冷&#xff0c;今天看到一道似曾相识的题目&#xff0c;而且难度是hard模式&#xff0c;勾起了算法哥的征服欲。特分享之&#xff01;题目描述「推箱子」是一款风靡全球的益智小游戏&#xff0c;玩家需…

利用Excel VBA实现批量数据分组转置

问题:如上图所示,按lon,lat分组,再进行转置。 VBA代码: Sub admin()Dim conn, xRs, xFdSet conn = CreateObject("ADODB.Connection")conn.Open "Provider=Microsoft.Jet.Oledb.4.0;" & _"Extended Properties= Excel 8.0;hdr=yes;IMEX=1 …

.NET 7 Preview 3添加了这些增强功能

.NET 7 Preview 3 已发布&#xff0c; .NET 7 的第三个预览版包括对可观察性、启动时间、代码生成、GC Region、Native AOT 编译等方面的增强。有兴趣的用户可以下载适用于 Windows、macOS 和 Linux 的 .NET 7 Preview 3。Microsoft 建议使用Visual Studio 17.2 Preview 3 的 预…

MySQL基本分区表

2019独角兽企业重金招聘Python工程师标准>>> 准备工作 1、查看数据库的信息 了解当前的Mysql数据库的版本和平台以及字符集等相关信息 mysql> status -------------- mysql Ver 14.14 Distrib 5.6.17, for Win64 (x86_64)Connection id: 4 Current dat…

分段线性拟合经典案例:计算多年气温最低值和最高值的分段线性变化趋势(附分段线性拟合工具下载)

分段线性回归:是用虚拟变量估计不同数量水平的解释变量对被解释变量的影响。在经济关系中,当解释变量X的值达到某一水平X′之前,与被解释变量之间存在某种线性关系;当解释变量X的值达到或者超过X′以后,与被解释变量的关系就会发生变化。此时,如果已知X的转折点X′,我们…