SQL 检索操作返回一组称为结果集的行,这组返回的行都是与 SQL 语句相匹配的行(零行或多行)。简单地使用SELECT语句,没有办法得到第一行、下一行或前 10 行。但这是关系 DBMS 功能的组成部分。

结果集( result set )
SQL 查询所检索出的结果。

有时,需要在检索出来的行中前进或后退一行或多行,这就是游标的用途所在。游标( cursor )是一个存储在 DBMS 服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。

游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。

使用游标

使用游标涉及几个明确的步骤:

1.在使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,它只是定义要使用的SELECT语句和游标选项。
2.一旦声明,就必须打开游标以供使用。这个过程用前面定义的SELECT语句把数据实际检索出来。
3.对于填有数据的游标,根据需要取出(检索)各行。
4.在结束游标使用时,必须关闭游标,可能的话,释放游标(有赖于具体的 DBMS )。

声明游标后,可根据需要频繁地打开和关闭游标。在游标打开时,可根据需要频繁地执行取操作。

创建游标

使用DECLARE语句创建游标,这条语句在不同的 DBMS 中有所不同。DECLARE命名游标,并定义相应的SELECT语句,根据需要带WHERE和其他子句。为了说明,我们创建一个游标来检索没有电子邮件地址的所有顾客,作为应用程序的组成部分,帮助操作人员找出空缺的电子邮件地址。

下面是创建此游标的 DB2 、 MariaDB 、 MySQL 和 SQL Server 版本:

DECLARE CustCursor CURSOR
FOR
SELECT * FROM Customers
WHERE cust_email IS NULL;

DECLARE语句用来定义和命名游标,这里为CustCursor。SELECT语句定义一个包含没有电子邮件地址(NULL值)的所有顾客的游标

使用游标

使用OPEN CURSOR语句打开游标,这条语句很简单,在大多数 DBMS 中的语法相同:

OPEN CURSOR CustCursor

在处理OPEN CURSOR语句时,执行查询,存储检索出的数据以供浏览和滚动。
现在可以用FETCH语句访问游标数据了。FETCH指出要检索哪些行,从何处检索它们以及将它们放于何处(如变量名)

关闭游标

CLOSE CustCursor

CLOSE语句用来关闭游标。一旦游标关闭,如果不再次打开,将不能使用。第二次使用它时不需要再声明,只需用OPEN打开它即可。

SQL必知必会-使用游标相关推荐

  1. GitHub#SQL#:SQL必知必会

    https://github.com/CyC2018/Interview-Notebook 一.基础 二.创建表 三.修改表 四.插入 五.更新 六.删除 七.查询 八.排序 九.过滤 十.通配符 十 ...

  2. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

  3. SQL Server必知必会

    SQL Server必知必会 2009-10-27-17:57:57 Structure     Query     Language:SQL 结构化       查询      语言 数据库产品: ...

  4. SQL必知必会读书笔记

    <SQL必知必会> 1.SQL概述(概念.优点.数据库术语) * 日常生活中的数据库案例举例(例如在网站搜索东西:登录账号密码:取钱:) * 数据库概念:数据库database(以一种有组 ...

  5. SQL必知必会第4版读书笔记

    SQL必知必会_4 前言 @author 鲁伟林 在读电子版<<SQL必知必会>> 第4版时,做了下笔记.供以后自己或者其他学习者参考. 电子版<<SQL必知必会& ...

  6. 根据SQL必知必会学习SQL(MYSQL)

    很久都没有整理SQL语句了,遇到让写SQL语句的题也很迷茫,所以就重拾一下知识,本文章根据SQL必知必会进行梳理 文章目录 一.检索所有列 1.select 1.1检索单个列 1.2 检索多个列 1. ...

  7. 【SQL】【读书笔记】《MySQL必知必会》

    本文为<MySQL必知必会>[1]读书笔记,用于总结知识点和框架,仅供参考和交流,如有不妥请联系.由于软件版本更新,书中的一些代码已经不再适用,本文主要从SQL基本语句进行增删减.窗口函数 ...

  8. 《MySQL必知必会》所有SQL语句图表集合(可作为查询表使用)---已完结

    本篇文章是对<MySQL必知必会>所有语句知识点的图表集合,适合快速查询遗忘的SQL语句. 本文的脉络结构,首先先给出<MySQL必知必会>的目录和本书中用到的数据表的UML图 ...

  9. asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 来源:https://segmentfault.com/p/1210000011760 ...

  10. sql必知必会的数据初始化

    之前已经配置好mysql的工作环境,但是还缺少可以进行操作的文件,即缺少对应的一个数据库和其中的5个表. 下载相关代码 在网址http://www.forta.com/books/0672325675 ...

最新文章

  1. “移花接木”偷换广告:HTTPS劫匪木马每天打劫200万次网络访问
  2. R语言sink函数保存文件实战
  3. pandas read_csv ‘utf-8‘ codec can‘t decode bytes in position 1198-1199: invalid continuation byte解决
  4. 使用睡袋_在户外一个关乎睡眠的重要因素——睡袋
  5. JaveWeb 公司项目(4)----- Easyui的表单验证
  6. DNS解析与Bind的使用(2)
  7. codeforces global round 1题解搬运
  8. matlab自带python_在matlab中直接在python中使用sklearn
  9. ubuntu简易部署Python3编写的djangoWeb应用
  10. 使IE6支持PNG透明图片的JS插件
  11. Lammps 初学者——in 文件中文解析
  12. 手机数字雨_cmd命令数字雨教程
  13. 计算机网络基础(韩立刚视频笔记)第一章 概述
  14. python3 中 sort 方法与 sorted 函数的使用
  15. 嵌入式硬件-读懂原理图
  16. Java 生成视频缩略图(ffmpeg)
  17. PS一些简单的非主流照片效果
  18. 计算机桌面颜色比较暗,电脑显示器颜色偏暗怎么回事
  19. 精致生活品味相伴,Barsetto百胜图BAC025B胶囊咖啡机测评
  20. win2003 64位系统IIS6.0 32位与64位间切换

热门文章

  1. ISA2006系列之三 详解防火墙的三种客户端(上)
  2. React组件的state和props
  3. jeesite如何已生成数据的数据源_如何在postman中自动生成接口请求数据,这个功能你需要知道,可结合浏览器和两大抓包工具使用...
  4. 昆仑通态9针通讯口定义_昆仑通态触摸屏与常见PLC的连接方法(3)——OmronHostLink...
  5. 百度路书 信息显示_学会用地图制作路书,分分钟从小白变成自驾游达人
  6. 公有云 私有云 混合云_混合云不断变化的面貌
  7. 字扩展,位扩展,和字位扩展_6个有用的LibreOffice扩展
  8. HTML5 结构语义元素的标题h1~h6元素
  9. Bootstrap HTML编码规范之引入 CSS 和 JavaScript 文件
  10. ssm 转发请求_千呼万唤!阿里内部终于把这份SSM框架技术学习笔记分享出来了...