千家信息网

mysql中光标怎样书写

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍mysql中光标怎样书写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql中光标书写的方法:首先声明光标;然后开启光标,代码为【OPEN cursor_n
千家信息网最后更新 2025年01月31日mysql中光标怎样书写

这篇文章主要介绍mysql中光标怎样书写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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

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_age

BEGIN    #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关键字定义的,他们之间是有顺序要求的。变量、自定义异常必须放在最前面,然后是光标的声明,最后是异常处理的声明。

以上是mysql中光标怎样书写的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

光标 变量 两个 格式 存储 代码 内容 案例 用户 过程 处理 循环 局部 方法 结果 中光 查询 三个 之间 事项 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 选择数据库sql语句 数据库原理与应用课后答案详解 桌面共享软件开发有什么用 哪些数据库是题录型数据库 网络安全发展现状及问题分析 深圳安卓软件开发收费报价表 qt 网页数据库 我国网络安全和信息化攻击 吉林警校网络安全专业 引物设计数据库如何选择 提高网络安全防范能力的关键 阿拉丁网络技术推广有限公司 服务器管理员bug视频 透传用户证书信息至后端服务器 郑州紫荆网络安全科技园 国内展館馆网络技术 郑州小牛软件开发 安徽前端软件开发需要多少钱 服务器的性能指标 只处理表格中的部分数据库 做上位机软件开发 163网易免费邮箱收件服务器名 李晓霞视频软件开发 我为网络安全点赞 数据库运维4046答案2022 北航网络安全学院研究生招生 医院软件开发培训计划 发票信息保存数据库失败 因网络安全影响到的保险问题 网络技术综合题一
0