什么是游标?使用游标的基本步骤是什么?

什么是游标?使用游标的基本步骤是什么?,第1张

游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。游标提供了一种对从表中检索出的数据进行 *** 作的灵活手段。

使用游标的基本步骤:

1、声明游标。把游标与T-SQL语句的结果集联系起来。

2、打开游标。

3、使用游标 *** 作数据。

4、关闭游标。

功能:

1、游标提供了一种对从表中检索出的数据进行 *** 作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。

2、游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。

3、游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。

种类:

1、Transact_SQL游标

Transact_SQL游标是由DECLARECURSOR语法定义、主要用在Transact_SQL脚本、存储过程和触发器中。Transact_SQL游标主要用在服务器上,由从客户端发送给服务器的Transact_SQL语句或是批处理、存储过程、触发器中的Transact_SQL进行管理。Transact_SQL游标不支持提取数据块或多行数据。

2、API游标

API游标支持在OLEDB,ODBC以及DB_library中使用游标函数,主要用在服务器上。每一次客户端应用程序调用API游标函数,MSSQLSEVER的OLEDB提供者、ODBC驱动器或DB_library的动态链接库(DLL)都会将这些客户请求传送给服务器以对API游标进行处理。

3、客户游标

客户游标主要是当在客户机上缓存结果集时才使用。在客户游标中,有一个缺省的结果集被用来在客户机上缓存整个结果集。客户游标仅支持静态游标而非动态游标。由于服务器游标并不支持所有的Transact-SQL语句或批处理,所以客户游标常常仅被用作服务器游标的辅助。因为在一般情况下,服务器游标能支持绝大多数的游标 *** 作。由于API游标和Transact-SQL游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。

游标是从表中检索出的结果集,可以被看作指向结果集中某一行的指针(Pointer)与结果集进行交互的机制。游标的每个时间点只能指向一行,但是可以根据需要指向结果集中其他的行。

游标从概念上讲是基于数据库的表返回结果集,由于它指示结果集中的当前位置,就像计算机屏幕上的光标指示当前位置一样,“游标”由此得名。游标概述游标是通过游标库来实现的,而游标库常常是作为数据库系统或数据访问API的一部分而得以实现的软件,用来管理从数据源返回的数据的结果集。游标跟踪结果集中的位置,并允许对结果集逐行执行多个 *** 作,在这个过程中可能返回至原始表,也可能不返回至原始表。

在初始的时候,游标被放置在结果集中第一行的前面。为了使游标指向第一行,要执行FETCH动作。当游标指向结果集中某行的时候,可以对这行数据进行加工处理,要想得到下一行数据,要继续执行FETCH *** 作。FETCH *** 作可以重复执行,直到完成结果集中的所有行。

1.游标的作用对查询数据库所返回的记录进行遍历。

2.游标的属性((1)游标是只读的,也就是不能更新它。

(2)游标是不能滚动的,也就是只能在一个方向上进行遍历,不能在记录之间随意进退,也不能跳过某些记录。

(3)避免在已经打开游标的表上更新数据。游标使用游标对关系数据库来说极其重要,它是 *** 作数据库服务器上记录的一种重要机制。在存储过程中使用游标,经过声明游标、打开游标、 *** 作游标和关闭游标等几个步骤,将游标指向的数据取到本地,在结束时关闭游标。

1.游标的使用步骤(1)声明游标语法格式:DECLARE+游标名+CURSORFOR+SELECT语句DECLARE为声明游标的关键字,后面跟游标的名称,CURSORFOR表示游标要 *** 作的数据结果集,后面跟一条数据库的SELECT检索语句。例如,下面语句声明了一个叫mycoursor的游标。DECLAREmycoursorCURSORFORselectuser_name

简单来说,游标就是一个临时存储器。SQL处理数据时,总是对整个数据集打包给你,而不会逐条给你,而游标就是将SQL打包的数据集进行二次处理,使得你能够逐条对数据修改和处理。就是将机器的死脑经变的更人性化一点,满足人们的日常需要(哈哈哈,皮一下!)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9899121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存