目录
🍀一、什么是光标
🍀二、声明光标
🍀三、打开光标
🍀四、使用光标
🍀五、关闭光标
一、什么是光标
查询语句可能查询出多条记录,在存储过程和函数中使用光标来逐条读取查询结果集中的记录。有些书上将光标称为游标。光标的使用包括声明光标、打开光标、使用光标和关闭光标。光标必须声明在处理程序之前,并且声明在变量和条件之后。
二、声明光标
在MySQL中,可以使用DECLARE关键字来声明光标,其基本语法如下:
DECLARE cursor_name CURSOR
FOR select_statement;
- 参数cursor_name表示光标的名称;
- 参数select_statement表示SELECT语句的内容。
三、打开光标
在MySQL中,使用关键字OPEN来打开光标,其基本语法如下:
OPEN cursor_name;
- 参数cursor_name表示光标的名称。
四、使用光标
在MySQL中,使用关键字FETCH来使用光标,其基本语法如下:
FETCH cursor_name
INTO var_name[,var_name…];
- 参数cursor_name表示光标的名称;
- 参数var_name表示将光标中的SELECT语句查询出来的信息存入该参数中。var_name必须在声明光标之前就定义好。
示例:在下面student表与class表创建cur_student光标,输入学生学号,查询学生姓名和所在班级
delimiter $$
create procedure proc_query_student(in sid int,out cname varchar(64) ,out cid int)
begin
declare temp_name varchar(64);
declare temp_cid int;
#声明光标
declare cur_student cursor for select name ,class_id from student where id=sid;
open cur_student; #打开光标
fetch cur_student into temp_name,temp_cid; #使用光标
select temp_name ,temp_cid; #打印从光标中获得的值
close cur_student; #关闭光标
set cname=temp_name,cid=temp_cid;
end;
$$
delimiter ;
调用存储过程。这里的查询结果只有一条,当结果为多个时可以配合流程控制的if语句实现循环输出。
五、关闭光标
在MySQL中,使用关键字CLOSE来关闭光标,其基本语法如下:
CLOSE cursor_name;
- 参数cursor_name表示光标的名称。
🍀🍀🍀🍀🍀🍀🍀🍀
更多推荐
【MySQL存储过程】光标的使用详解
发布评论