SQL必知必会 笔记 第二十一章 使用游标

21.1游标

SQL检索操作返回一组称为结果集的行。这组返回的行都是与SQL语句相匹配的行。
结果集(result set)SQL查询所检索出的结果
游标的一些选项和特性:
(1)能够标记游标为只读,使数据能读取,但不能更新和删除。
(2)能控制可以执行的定向操作。
(3)能标记某些列为可编辑的,某些列为不可编辑的。
(4)规定范围,使游标对创建它的特定请求或对所有请求可访问。
(5)指示DBMS对检索出的数据做复制,使在游标打开和访问期间数据不变化。

21.2使用游标

使用游标的步骤:
(1)在能够使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,他只是定义要使用的SELECT语句和游标选项。
(2)一旦声明后,必须打开游标以供使用。这个过程用前面定义的SELECT语句吧数据实际检索出来。
(3)对于填有数据的游标,根据需要取出(检索)各行。
(4)在结束游标使用时,必须关闭游标,而且可能的话,释放游标。
在声明游标后,可根据需要频繁地打开和关闭游标。在游标打开时,可根据需要频繁地执行取操作。

21.2.1创建游标

使用DECLARE命名游标,并定义相应的SELECT语句,根据需要带WHERE和其他子句。
创建一个检索没有电子邮件地址的所有客户的游标。Oracle版本。

DECLARE CURSOR CustCursor
IS
SELECT * FROM Customers
WHERE cust_emai IS NULL

21.2.2使用游标

游标用OPEN CURSOR打开游标。
OPEN CURSOR CustCursor
打开游标后用FETCH语句访问游标数据。FETCH指出要检索的行,从何处检索它们以及将它们放于何处。
使用Oracle语法从游标中检索一行:

DECLARE TYPE CustCursor IS REF CURSOR
     RETURN Customers%ROWTYPE;
DECLARE CustRecord Customers%ROWTYPE
BEGIN
     OPEN CustCursor;
     FETCH CustCursor INTO CustRecord;
     CLOSE CustCursor;
END;

从第一行到最后一行,对检索出来的数据进行循环:

DECLARE TYPE CustCursor IS REF CURSOR
     RETURN Customers%ROWTYPE;
DECLARE CustRecord Customers%ROWTYPE
BEGIN
     OPEN CustCursor;
     LOOP
     FETCH CustCursor INTO CustRecord;
     EXIT WHEN CustCursor%NOTFOUND;
     ...
     END LOOP;
     CLOSE CustCursor;
END;

21.2.3关闭游标

CLOSE CustCursor;

CLOSE语句用来关闭游标;一旦游标被关闭,如果不再此打开,将不能使用。但是,为使用它不需要再次声明,只需再次OPEN它即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值