欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

MySQL游标实战:经典案例解析与详细使用教程(学习笔记)

最编程 2024-08-05 08:11:26
...

1.游标是啥玩意?

简单的说:游标(cursor)就是游动的标识,啥意思呢,通俗的这么说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行。我给大家准备一张图:

779bff6c0647499aba758a39ce77b24d.png

2.怎么使用游标?

//1.声明/定义一个游标

declare 声明;declare 游标名 cursor for select_statement;

//2.打开一个游标

open 打开;open 游标名

//3.取值

fetch 取值;fetch 游标名 into var1,var2[,...]

//4.关闭一个游标

close 关闭;close 游标名;

3.游标实战

未使用游标:

create procedure p1()

begin

select * from category;

end$

call p1$

执行结果:

c072bbb9067b4aa9d027903de1d481cf.png

使用游标:

/**

注释

*/

create procedure p2()

begin

//一下定义的三个变量用于将fetch取值出来的值放到对应的变量中

declare row_cat_id int;

declare row_cat_name int;

declare row_parent_id int;

//定义游标

declare getcategory cursor for select cat_id,cat_name,parent_id from category;

//打开游标

open getcategory;

//取值

fetch getcategory into row_cat_id,row_cat_name,row_parent_id;

//关闭游标

close getcategory;

end$

/**

未注释

*/

create procedure p2()

begin

declare row_cat_id int;

declare row_cat_name varchar(90);

declare row_parent_id int;

declare getcategory cursor for select cat_id,cat_name,parent_id from category;

open getcategory;

fetch getcategory into row_cat_id,row_cat_name,row_parent_id;

close getcategory;

end$

//执行的时候你会发现是0行,这时因为我们将查询出的结果赋给了变量,我们有没有对赋值后的变量进行查询显示。所以是0行。因此,我们要重新