SQL

SQL 知识量:22 - 44 - 129

21.2 使用游标><

创建游标- 21.2.1 -

创建游标的语句在不同的DBMS中有所差别。

在MySQL、DB2和SQL Server中创建游标newStudent:

declare newStudent cursor
for
select * from student;

注意:由于MySQL中,游标只能用于存储过程和函数,所以,以上语句应包含于一个存储过程之中。

在Oracle中的语句为:

declare cursor newStudent
is
select * from student;

使用游标- 21.2.2 -

1、使用open语句打开游标,在多数DBMS中本操作的语法相同。例如:打开游标newStudent。

open newStudent;

2、使用close语句关闭游标。例如:关闭游标newStudent。

close newStudent;

3、以下是一个简单的游标应用示例(使用MySQL):

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 |
+-------+