mysql_技能7_游标

– 游标/光标

– 声明光标:
DECLARE cursor_name CURSOR FOR select_statement ;
– OPEN 光标:
OPEN cursor_name ;
– FETCH 光标:
FETCH cursor_name INTO var_name [, var_name] …
– CLOSE 光标:
CLOSE cursor_name ;

– 查询emp表中数据, 并逐行获取进行展示
create procedure protest11() begin
declare eid int(11);
declare ename varchar(50);
declare eage int(11);

declare esalary int(11); declare empresult cursor for select * from emp;

open emp_result;

fetch empresult into eid,ename,eage,esalary; select concat(‘id=’,eid , ‘, name=’,ename, ‘, age=’, eage, ', 薪资为: ',e_salary);

fetch empresult into eid,ename,eage,esalary; select concat(‘id=’,eid , ‘, name=’,ename, ‘, age=’, eage, ', 薪资为: ',e_salary);

fetch empresult into eid,ename,eage,esalary; select concat(‘id=’,eid , ‘, name=’,ename, ‘, age=’, eage, ', 薪资为: ',e_salary);

fetch empresult into eid,ename,eage,esalary; select concat(‘id=’,eid , ‘, name=’,ename, ‘, age=’, eage, ', 薪资为: ',e_salary);

fetch empresult into eid,ename,eage,esalary; select concat(‘id=’,eid , ‘, name=’,ename, ‘, age=’, eage, ', 薪资为: ',e_salary);

close emp_result;

end;

– 通过循环结构 , 获取游标中的数据 :

create procedure protest12()
begin
DECLARE id int(11);
DECLARE name varchar(50);
DECLARE age int(11);
DECLARE salary int(11);
DECLARE hasdata int default 1;

DECLARE empresult CURSOR FOR select * from emp; DECLARE EXIT HANDLER FOR NOT FOUND set hasdata = 0;

open emp_result;

repeat
fetch empresult into id , name , age , salary;
select concat(‘id为’,id, ‘, name 为’ ,name , ', age为 ’ ,age , ', 薪水为: ', salary);
until hasdata = 0
end repeat;

close emp_result;

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值