MySQL游标学习总结

1.What
    游标:相当于Java集合框架中的迭代器或者说指针
            是存储在数据库服务器上的查询出的结果集
            存储了该查询的游标之后,应用程序就可以根据需要滚动地浏览或修改其中的数据
    注意:Mysql中游标只适用于存储过程(或函数)之中
2.Why
    一条查询语句查询出一组结果集,使用其他方法不能做到迭代地处理其中的一条
    只可以单条单条执行,做不到循环遍历,而使用游标就可以做到类似指针对结果集进行依此轮循处理
3.How
    1)步骤要求
  • 使用游标前必须声明,这是并没有检索数据执行select,知识定义了要使用的语句
  • 声明之后,使用时必须打开游标以供使用,这时就将之前声明的语句数据检索了出来
  • 对于填有数据的游标,根据需要取出各行
  • 结束游标时,必须关闭游标
    2)具体步骤
  •  创建游标(存储过程中使用)
CREATE PRODUCE processorders()
    BEGIN
        DECLARE orderbums CURSOR
        FOR
        SELECT order_num FROM orders;
    END
 
            游标的作用域只限于存储过程中
  •  打开关闭游标
            打开: OPEN 游标名
            关闭: CLOSE 游标名
            在作用域中,游标可多次使用,多次打开多次关闭,不关闭会自动运行完成关闭
  •  使用游标数据       
            FETCH 游标名 INTO 变量 -->将这一行查出的数据赋值给变量
            通常使用游标常与循环语句结合使用,用到循环,就必须定义循环条件,这时就用到了布尔类型的变量了
            游标中取出的数据一般需要临时变量去接受
            注意 : 变量的定义必须在声明游标之前
                      句柄的定义必须在声明游标之后,循环遍历之前
                      如果不遵循顺序会产生错误
  •  游标与循环语句相结合
           
REPEAT
    循环体(游标FETCH 游标名 INTO 变量)
UNTIL 停止循环的条件 END REPEAT
游标使用时可以嵌套存储过程执行数据的处理
而对于有参存储过程的参数,可使用游标前定义的变量进行中间的变量存储
 

猜你喜欢

转载自www.cnblogs.com/autism-dong/p/12076925.html