MySQL 知识量:16 - 40 - 165
使用declare语句来创建游标。declare命名游标并定义相应的select语句,根据需要还可以使用where及其他子句。
例如:创建一个查询学生信息的游标(必须在存储过程中创建)。
delimiter // create procedure show_s() begin declare newStudent cursor /*定义游标newStudent*/ for select * from student; end // delimiter ;
以上SQL语句中,使用declare+游标名+cursor的形式定义游标,for关键字用于连接具体的select语句。
1、使用open语句打开游标。例如:打开游标newStudent。
open newStudent;
2、使用close语句关闭游标。例如:关闭游标newStudent。
close newStudent;
close释放游标使用的所有内部内存和资源,因此,在每个游标不再使用时都应该关闭。如果不明确关闭游标,MySQL也会在到达end语句时自动关闭它,即隐含关闭,但是手动关闭是个好习惯。
在游标关闭后,如果没有重新打开,是不能使用它的。但是,声明过的游标不需要再次声明,使用open语句打开它就可以了。
3、以下是一个简单的游标应用示例:
delimiter // create procedure showName() /*定义存储过程showName*/ begin declare res varchar(255); /*定义变量res*/ declare theName cursor /*定义游标theName*/ for select name from student; open theName; /*打开游标*/ fetch theName into res; /*取出游标第一行name列的值赋给res*/ close theName; /*关闭游标*/ select res; end // delimiter ;
以上语句中,在游标中获取数据,使用了fetch语句,这里将检索当前行的name列(默认从第一行开始),并把结果通过into关键字保存到变量res中。
调用以上存储过程:
call showName;
结果为:
+-------+ | res | +-------+ | Susan | +-------+
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6