当我们select * from emp 可以查看所有的数据 这个数据就相当于一个数据表
游标的作用相当于一个索引 一个指针 指向每一个数据
假设说我要取出员工中薪资最高的前五名成员 就要用到limit关键字 但是这样太麻烦了
所以这里用到了游标
游标的声明:
declare my_cursor cursor for select * from emp;
这样就是相当于取出来emp表 然后加上了一个 索引
想要用我当前游标指向的这个数据 :
先打开 里面操作 然后关闭
open my_cursor;
*****
close cursor;
****这里面可以用到 语句:fetch my_cursor into ***(自己声明的一个变量,存储fetch来的数据)
如果我想要循环取里面的数据 当最后结束的时候 要跳出循环
这个时候就可以用到句柄
declare continue handler for not found set flag=0;
可以continue表示继续执行 for后面not found表示原因 set还能赋值
当我同时用到游标和句柄的时候 要注意一些顺序:
1.声明变量
2.声明游标
3.声明句柄
下面是一个例子,供大家参考: