mysql游标的经典例⼦_mysql中游标的使⽤案例详解(学习笔
skip什么意思记)
1.游标是啥玩意?
简单的说:游标(cursor)就是游动的标识,啥意思呢,通俗的这么说,⼀条sql取出对应n条结果资源的接⼝/句柄,就是游标,沿着游标可以⼀次取出⼀⾏。我给⼤家准备⼀张图:
2.怎么使⽤游标?
//1.声明/定义⼀个游标
declare 声明;declare 游标名 cursor for lect_statement;
//2.打开⼀个游标
open 打开;open 游标名
//3.取值
fetch 取值;fetch 游标名 into var1,var2[,...]
//4.关闭⼀个游标
clo 关闭;clo 游标名;
3.游标实战
未使⽤游标:
create procedure p1()
begin
实收资本是什么
lect * from category;
end$
call p1$
执⾏结果:
使⽤游标:
/**
注释
*/
create procedure p2()
begin
怎么开化妆品店//⼀下定义的三个变量⽤于将fetch取值出来的值放到对应的变量中
declare row_cat_id int;
declare row_cat_name int;
declare row_parent_id int;
//定义游标
declare getcategory cursor for lect cat_id,cat_name,parent_id from category; //打开游标
open getcategory;
fuckyou什么意思
//取值
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
//关闭游标
clo getcategory;
end$
/**
未注释
*/
gre注册create procedure p2()
begin
declare row_cat_id int;
declare row_cat_name varchar(90);
declare row_parent_id int;
declare getcategory cursor for lect cat_id,cat_name,parent_id from category;
open getcategory;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
revolveclo getcategory;
激扬青春梦end$
//执⾏的时候你会发现是0⾏,这时因为我们将查询出的结果赋给了变量,我们有没有对赋值后的变量进⾏查询显⽰。所以是0⾏。因此,我们要重新改进。
call p2()$
执⾏结果为:
//改进
//删除游标重新执⾏
drop procedure p2$
create procedure p2()
begin
declare row_cat_id int;
declare row_cat_name varchar(90);
declare row_parent_id int;
declare getcategory cursor for lect cat_id,cat_name,parent_id from category;
open getcategory;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
lect row_cat_id,row_cat_name,row_parent_id;
clo getcategory;
end$
call p2()$
执⾏结果如下:
这时候你会发现我们只得到了⼀个查询结果,这时为什么呢?这时因为控制权在我们这⾥,我愿意取⼀⾏就⼀⾏,愿意取两⾏就两⾏。因此,我在把刚才的动作变⼀下。
create procedure p3()
begin
declare row_cat_id int;
declare row_cat_name varchar(90);
declare row_parent_id int;
declare getcategory cursor for lect cat_id,cat_name,parent_id from category;
clean怎么读open getcategory;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
lect row_cat_id,row_cat_name,row_parent_id;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
lect row_cat_id,row_cat_name,row_parent_id;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
lect row_cat_id,row_cat_name,row_parent_id;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
丝瓜的英文
lect row_cat_id,row_cat_name,row_parent_id;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
lect row_cat_id,row_cat_name,row_parent_id;
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
lect row_cat_id,row_cat_name,row_parent_id;
clo getcategory;
end$
belief我fetch六次,查询五次,这时候我们会得到什么呢?试⼀下嘛!call p4()$
执⾏结果如下: