精华内容
下载资源
问答
  • 数据库中cursor游标的概念

    万次阅读 2017-10-18 09:48:27
    游标(cursor) 游标是系统为用户开设的一个数据缓冲区,存放...仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求 嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式 在数据库开发过程,当你检

    游标(cursor)

      游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果

      每个游标区都有一个名字

      用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理

      主语言是面向记录的,一组主变量一次只能存放一条记录

      仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求

      嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式

      在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。

      1.游标和游标的优点

      在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。

      我们知道关系数据库管理系统实质是面向集合的,在MS SQL SERVER 中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。

      2. 游标种类

      MS SQL SERVER 支持三种类型的游标:Transact_SQL 游标,API 服务器游标和客户游标。

      (1) Transact_SQL 游标

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

      (2) API 游标

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

      (3) 客户游标

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

      游标详细说明:

      RS.OPEN SQL,CONN,A,B

      参数A为设定游标的类型,其取值为:

      0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark

      1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark

      2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。

      3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

      参数B为记录集的锁定类型,其取值为:

      1 锁定类型,默认的,只读,不能作任何修改

      2 当编辑时立即锁定记录,最安全的方式

      3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等

      4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

      打开数据记录集方法其实不止一种,但是我们用的最多的就是

      rs.open sql,1,1的方法,可是后面的数字参数很多人不解其意,下面我们来介绍一下。

      其实open方法后面有多个参数

      CursorType LockType CommandType

      比如 rs.open sql,1,1

      也可以写成

      rs.cursorType = 1

      rs.LockType = 1

      rs.open sql

      其中CursorType代表从一个表或者一个SQL查询结果返回的记录。

      这个参数有四个值分别是:

      adOpenForwardOnly 表示只允许在记录集内的记录间往前移动。这个是缺省值。

      adOpenKeyset 反映由其它用户所做的对记录的改变或者删除动作,但并不反映由其它用户做作的添加新记录的动作。

      adOpenDynamic 反映由其它用户所做的对记录的改变或者删除动作,包括添加的新记录

      adOpenStatic 不反映其它用户对记录所做的修改,添加,删除动作。

      这四个值VBSCRIPT预定义位

      adOpenForwardOnly = 0

      adOpenKeyset = 1

      adOpenDynamic = 2

      adOpenStatic = 3

      lockType 表示当打开记录集时,数据提供者用于锁定数据库的类型:

      adLockReadOnly 数据不能改变,这是缺省值!

      adLockPessimistic 数据提供者在开始编辑数据的时候锁定记录

      adLockOptimistic 仅当调用update方法时,数据提供者锁定记录

      adLockBatchOptimistic 用于批处理修改

      他们的常量值定义分别是:

      adLockReadOnly = 1

      adLockPessimistic = 2

      adLockOptimistic = 3

      adLockBatchOptimistic = 4

      rs.open sql,conn,1,1 读取记录 select

      rs.open sql,conn,1,3 只更新记录最好 update

      rs.open sql,conn,2,3 插入和删除最好 insert delete

    下面的解释:

    1. 什幺是游标?

    游标,也有人称为光标。概括的讲,它是基于记录的。

    过去,关系型数据库没有象现在这样被广泛的应用。那时候,人们大多使用 dBase 这样的小型数据库软件。这类数据库确切的说应为数据文件管理软件。他们是面向记录的。

    不过,这种方式也许更符合人们的习惯。比如,我们在电话本中查找号码,在学生档案中查找档案,最终都要归结于其中的一个号码,一个档案,那就是一条记录。现实生活中,我们在一张表格中寻找某一项时,可能会用手一条一条逐行的扫过,以帮助我们找到所需的那条记录。对应于数据库来说,这就是游标的模型。所以,你可以这样想象:表格是数据库中的表,而我们的手好比是游标。

    所以,当你使用类似 .MoveNext,.MoveLast 这样的语句时,觉得再自然不过了。

    现在,你明白什幺是游标了吧。游标就是数据的 ’ 定位系统 ’ 。

    这个 ’ 定位系统 ’ 粗分有两种:服务器游标和客户游标。对应于 ADO 中的 CursorLocation 。举例来说:

    Set rs = Server.CreateObject(“ADODB.RecordSet”)
    rs.CursorLocation = adUseServer ‘缺省,使用服务器游标
    …..
    rs.CursorLocation = adUseClient ‘使用客户游标

    1. 什幺是服务器游标?

    或者称为 API 服务器游标。

    假设你要查询有关编程语言的书,写成 SQL 语句就是:SELECT book_id,book_title FROM books WHERE book_catalog = ‘编程’ ORDER BY book_title,同时你指定使用服务器游标。

    这条语句发送到服务器,服务器对数据进行检索,将符合查询条件的记录集合放入临时表(对某些游标类型是这样)中。每当你进行 .MoveNext 操作,服务器就会发送一条记录到客户端的缓冲区,然后你才可以使用它。

    1. 什幺是 CacheSize ?

    继续上面的例子,假设符合查询条件的记录有100个,也就是说,用 .MoveNext 这种方法遍历该结果集需要同服务器交互100次。我们可以通过设置 CacheSize 使客户与服务器的通信变少。上面的例子其实就是 CacheSize=1 的情况,这是缺省值。

    假设 CacheSize=4,当 RecordSet 对象打开时,服务器发送4条记录到客户端。前4次的 .MoveNext 操作实际上是在客户缓冲区中得到数据,当第5次 .Movenext 时,服务器才发送下一个4条记录。由此,减少了客户与服务器间的网络通信。

    那幺是不是说 CacheSize 越大越好呢?千万不要想当然。万事都有两面性,CacheSize 也一样。客户端请求数据,服务器发送数据,这个过程有点象交通管理。CacheSize 过高,会阻塞交通,甚至引起数据丢失(比如当 Cachesize 大于客户端缓冲区时)。对于不同的应用,所取的值也不同。

    另外要指出的是,使用任何形式的游标都不是最有效的访问数据的方法,Cachesize 有的时候并不是瓶颈,尽量将使用游标的程序转换为面向结果集的程序,性能会提高很多。

    1. 什幺是客户游标?

    既然游标是数据的 ’ 定位系统 ‘,那幺在客户端也可以完成。

    客户游标的产生由来已久,当初是为了弥补服务器的不足(有些数据库引擎就不支持游标)。随着服务器游标的出现,客户游标似乎已经过时了,不过还是那句话:万事都有两面性,在 internet 上,与数据库的连接并不是永久的,使用客户游标能使我们获得同使用服务器游标一样的功能。

    当 CursorLoction 属性设成 adUseClient 时,微软的游标服务( Cursor Service )创建 RecordSet 对象,用前向 / 只读的游标方式从服务器将所有查询结果检索出来,并且存储在客户缓冲区中。当应用程序通过 ADO 请求数据时,游标服务就从客户缓冲区中检取数据。这种方式在连接远程服务器时非常有用,它会提高应用程序的性能。如果你访问的数据库是 Jet 数据库( Access ),而且在本地,那么用客户游标非但不提高性能,还会使性能下降。这时候,数据将被缓存两次,数据库一次,游标服务一次。

    如果考虑应用的功能,客户游标功能是很完善的,它能支持某些数据库不能完成的操作( 视数据库的情况而定 )。

    1. 什幺是 DisConnected RecordSet ?

    我们使用了客户游标,就可以断开与数据库的连接,释放 Connection 对象。这样的结果集就是 DisConnected RecordSet。举例说明:

    Dim c As New ADODB.Connection
    Dim r As New ADODB.Recordset
    On Error GoTo handler

    c.ConnectionString = connectStr
    c.CursorLocation = adUseClient
    c.Open
    Set r.ActiveConnection = c
    r.Open SqlText, , adOpenKeyset, adLockBatchOptimistic, -1
    Set r.ActiveConnection = Nothing ’ This disconnects the recordset.
    c.Close
    Set c = Nothing
    ……
    ……
    ’ Recordset is now in disconnected state; do something with it.
    r.Close
    Set r = Nothing
    原文地址:http://blog.csdn.net/yxwb1253587469/article/details/52249174

    展开全文
  • oracle数据库中的游标

    2019-05-27 20:28:00
    oracle的游标,游标的概念与作用,游标的分类,游标的使用。 一,游标的概念与作用  摘自百度百科:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者...

    oracle中的游标,游标的概念与作用,游标的分类,游标的使用。

    一,游标的概念与作用

       摘自百度百科:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标可以被看作是一个查询结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成的一个临时文件,提供了在查询结果集中向前或向后浏览数据、处理结果集中数据的能力。有了游标,用户就可以访问结果集中任意一行数据,在将游标放置到某行之后,可以在该行或从该位置的行块上执行操作。

    其实就是用于存放查询出来的多条记录的一个临时变量,我们可以从这个变量中取出我们需要的信息字段。

    二,游标的分类

        游标有两种类型:显式游标和隐式游标。

      一般我们用到的SELECT...INTO...查询语句,一次只能从数据库中提取一行数据,对于这种形式的查询和DML操作,系统都会使用一个隐式游标。但是如果要提取多行数据,就需要由程序员定义一个显式游标,并通过与游标有关的语句进行处理。显式游标对应一个返回结果为多行多列的SELECT语句。 游标一旦打开,数据就从数据库中传送到游标变量中,然后应用程序再从游标变量中分解出需要的数据,并进行处理。

      简单的DML操纵语句和单行查询语句会使用隐式游标,这些语句分别是插入insert语句,更新update语句,删除delete语句,单行select查询语句。

    当系统使用一个隐式游标时,可以通过隐式游标的属性来了解操作的状态和结果,进而控制程序的流程。隐式游标可以使用名字SQL来访问,但要注意,通过SQL游标名总是只能访问前一个DML操作或单行SELECT操作的游标属性。所以通常在刚刚执行完操作之后,立即使用SQL游标名来访问属性。

      游标的属性有以下四种

        1.SQL%ROWCOUNT    返回值为一个整型数字  代表DML语句成功执行的数据行数   

        2.SQL%FOUND   布尔型 值为TRUE代表插入、删除、更新或单行查询操作成功   

        3.SQL%NOTFOUND    布尔型 值为true表示插入、删除、更新或单行查询操作失败。

        4.SQL%ISOPEN  布尔型 DML执行过程中为真,结束后为假  

    三,游标的使用

        隐式游标的使用主要就是以上的四种属性的使用,使用它们来进行一些流程控制。

        显示游标的声明和使用

          cursor cursor_name[ 参数1 参数类型,参数2,参数类型...]  is select 语句;

        游标的使用步骤:

          1.声明一个游标

          2.打开游标 open 游标名(参数1,参数2..);

          3.使用循环遍历游标,从游标中取值。fetch 游标名 into 变量名,循环的退出条件是 游标名%notfound;

          4.关闭游标 close 游标名;

        游标的遍历(两种方式)

          1.使用loop循环遍历

            例如 :

                declare
                  cursor outemp is  select * from emp;
                  ouem emp%rowtype;//也可以是%type,但是必须和表中的类型一致。
                begin
                  open outemp;
                  loop
                    fetch outemp into ouem;
                    exit when outemp%notfound;//退出条件
                    dbms_output.put_line(ouem.ename || ' ' ||ouem.sal);
                  end loop;
                  close outemp;
                end;

          2.使用for循环遍历游标

            例如:

                declare

                  cursor outfor is  select * from emp;
                
    begin
                  for vrow in outfor loop
                    dbms_output.put_line(vrow.ename || ' ' || vrow.sal);
                  end loop;
                end;

          使用for循环遍历游标的好处:1.不用声明额外的变量,2.不用打开和关闭游标,3.写法简单。

        系统引用游标

          1. 声明游标 : 游标名 sys_refcursor
          2. 打开游标: open 游标名 for select语句;
          3. 从游标中取数据
          4. 关闭游标

         例如:--输出员工表中所有的员工姓名和工资

            declare
              vrows sys_refcursor;
              vrow emp%rowtype;
            begin
              
    open vrows for select * from emp;
              loop
              
      fetch vrows into vrow;
                exit when vrows%notfound;
                dbms_output.put_line('姓名:'||vrow.ename ||' 工资: ' || vrow.sal);
              end loop;
              close vrows;
            end;
    以上就是游标的基础,使用游标时一定要记得关闭游标,还有就是在定义变量时需要注意定义的类型必须要和表中的字段类型一致,否则会出错。

    详情参见:https://blog.csdn.net/liyong199012/article/details/8948952

    转载于:https://www.cnblogs.com/jasonboren/p/10927715.html

    展开全文
  • 数据库中的游标

    2010-05-24 15:39:00
    游标(cursor) 游标是系统为用户开设的一个数据缓冲区,存放SQL...仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求 嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式 在数据库开发过程,当

    游标(cursor)
      游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果
      每个游标区都有一个名字
      用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理
      主语言是面向记录的,一组主变量一次只能存放一条记录
      仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求
      嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式
      在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。
      1.游标和游标的优点
      在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。
    copyright Sqlclub

      我们知道关系数据库管理系统实质是面向集合的,在MS SQL SERVER 中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。
      2. 游标种类
      MS SQL SERVER 支持三种类型的游标:Transact_SQL 游标,API 服务器游标和客户游标。
      (1) Transact_SQL 游标
      Transact_SQL 游标是由DECLARE CURSOR 语法定义、主要用在Transact_SQL 脚本、存储过程和触发器中。Transact_SQL 游标主要用在服务器上,由从客户端发送给服务器的Transact_SQL 语句或是批处理、存储过程、触发器中的Transact_SQL 进行管理。 Transact_SQL 游标不支持提取数据块或多行数据。 Sqlclub.cn
      (2) API 游标
      API 游标支持在OLE DB, ODBC 以及DB_library 中使用游标函数,主要用在服务器上。每一次客户端应用程序调用API 游标函数,MS SQL SEVER 的OLE DB 提供者、ODBC驱动器或DB_library 的动态链接库(DLL) 都会将这些客户请求传送给服务器以对API游标进行处理。
      (3) 客户游标
      客户游标主要是当在客户机上缓存结果集时才使用。在客户游标中,有一个缺省的结果集被用来在客户机上缓存整个结果集。客户游标仅支持静态游标而非动态游标。由于服务器游标并不支持所有的Transact-SQL 语句或批处理,所以客户游标常常仅被用作服务器游标的辅助。因为在一般情况下,服务器游标能支持绝大多数的游标操作。由于API 游标和Transact-SQL 游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。在本章中我们主要讲述服务器(后台)游标
    Sqlclub学习社区

      游标详细说明:
      RS.OPEN SQL,CONN,A,B
      参数A为设定游标的类型,其取值为:
      0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark
      1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
      2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。
      3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动
      参数B为记录集的锁定类型,其取值为:
      1 锁定类型,默认的,只读,不能作任何修改
      2 当编辑时立即锁定记录,最安全的方式
      3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等 本文来自Sqlclub
      4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的
      打开数据记录集方法其实不止一种,但是我们用的最多的就是
      rs.open sql,1,1的方法,可是后面的数字参数很多人不解其意,下面我们来介绍一下。
      其实open方法后面有多个参数
      CursorType LockType CommandType
      比如 rs.open sql,1,1
      也可以写成
      rs.cursorType = 1
      rs.LockType = 1
      rs.open sql
      其中CursorType代表从一个表或者一个SQL查询结果返回的记录。
      这个参数有四个值分别是:
      adOpenForwardOnly 表示只允许在记录集内的记录间往前移动。这个是缺省值。
      adOpenKeyset 反映由其它用户所做的对记录的改变或者删除动作,但并不反映由其它用户做作的添加新记录的动作。
      adOpenDynamic 反映由其它用户所做的对记录的改变或者删除动作,包括添加的新记录
    Sqlclub学习社区


      adOpenStatic 不反映其它用户对记录所做的修改,添加,删除动作。
      这四个值VBSCRIPT预定义位
      adOpenForwardOnly = 0
      adOpenKeyset = 1
      adOpenDynamic = 2
      adOpenStatic = 3
      lockType 表示当打开记录集时,数据提供者用于锁定数据库的类型:
      adLockReadOnly 数据不能改变,这是缺省值!
      adLockPessimistic 数据提供者在开始编辑数据的时候锁定记录
      adLockOptimistic 仅当调用update方法时,数据提供者锁定记录
      adLockBatchOptimistic 用于批处理修改
      他们的常量值定义分别是:
      adLockReadOnly = 1
      adLockPessimistic = 2
      adLockOptimistic = 3
      adLockBatchOptimistic = 4
      rs.open sql,conn,1,1 读取记录 select
      rs.open sql,conn,1,3 只更新记录最好 update
      rs.open sql,conn,2,3 插入和删除最好 insert delete

    展开全文
  • 一、游标的概念游标可以提供一种机制,使每次处理一行或一部分行游标分为两部分:游标结果集(Cursor Result Set)和游标位置(Cursor Position)SQL server支持3种游标:1.T-SQL游标:基于declare cursor,主要用于...

    一、游标的概念

    游标可以提供一种机制,使每次处理一行或一部分行

    游标分为两部分:游标结果集(Cursor Result Set)和游标位置(Cursor Position)

    SQL server支持3种游标:

    1.T-SQL游标:基于declare cursor,主要用于T-SQL脚本、存储过程、触发器中

    2.应用程序编程接口(API)服务器游标

    3.客户端游标

    二、游标的基本操作

    游标主要包括声明游标、打开游标、提取数据和释放游标。

    2.1 声明游标

    具体语法: declare 游标名称 【insensitive】【scroll】【static|keyset|dynamic】 cursor

                      for select 语句

    其中scroll子句可以指定提取选项:

    First:提取第一行

    last:提取最后一行

    prior:前一行

    next:后一行

    absolute relative:按相对位置提取数据

    默认NEXT

    2.2 打开游标

     open 游标名

    2.3 提取数据

    游标在打开后位于第一行,可以使用fetch语句从游标结果集提取数据

    具体语法:

    fetch [【next|prior|first|last|absolute{n|@nvar}|relative{n|@nvar}】from]游标名

    [into @variable name]

    [into @variable name] 允许将提取的结果放在变量中

    2.4 关闭游标

    close 游标名

    2.5 释放游标

    deallocate 游标名

    2.6 使用游标进行数据更新

     update 表名

     set 列名= 表达式【。。】

    where current of 游标名

    三、SQL sever2012具体实例

    还用那四个表:

    打印一个简单的学生信息表





    展开全文
  • Oracle的cursor游标

    2019-10-06 02:27:32
    游标是在关系数据库中用来操作记录结果集。 游标指示结果集当前位置,即游标跟踪结果集中位置,并允许对结果集逐行执行多个操作, 在这个过程中可能返回至原始表,也可能不返回至原始表。 换句话说,游标概念...
  • Cursor游标

    2018-08-24 10:49:28
    游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘...
  • cursor 游标

    2014-08-18 19:00:00
    游标的概念和作用 2009-08-08 1 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果的所有行,但他一次只指向一行。 概括来讲,SQL的...
  • Oracle中Cursor游标介绍

    千次阅读 2011-07-05 17:32:18
    关键字(概念 类型 异常处理)一 概念游标是...游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这
  • SQL CURSOR 游标

    2019-09-26 10:16:54
    1.1 游标的概念 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,...
  • 数据库操作之游标

    2017-08-15 15:54:00
    游标在操作数据库时经常用到的。... 游标的概念  可以将游标(Cursor)形象地看做成一个变动的光标。它实际上是一个指针,它在一段Oracle存放数据查询结果集或数据操作结果集的内存,这个指针...
  • cursor游标讲解

    2021-03-14 13:39:09
    游标,通俗的解释就是"游动的标志",这是数据库中一个很重要的概念。         有时候,我们执行一条查询语句的时候,往往会得到N条返回结果,执行sql语句取出这些返回
  • 转 oracle cursor 游标

    2018-08-09 18:47:00
    游标的概念: 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理...
  • ↑关注 + 置顶 ~有趣的不像个技术号01什么是游标游标,通俗的解释就是"游动的标志",这是数据库中一个很重要的概念。有时候,我们执行一条查询语句的时候,往往会得...
  • SQL CURSOR 游标

    2011-05-30 09:37:00
    1.1游标的概念  游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。  使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。  用SQL语言从数据库中检索数据后,...
  • 1.1游标的概念 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且...
  • 使用过 SQLite数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader。今天特地将它单独拿出来谈,加深自己和大家对Android使用 Cursor 理解。 ...
  • 一、前言寒假接触到了数据库游标的概念,一直没有实现。昨日回头看了一下,今早给实现了。二、数据库游标的优势自己百度、谷歌去吧。三、mySQL语法实现3.1游标的使用详情a.声明游标DECLARE cursor_name CURSOR FOR ...
  • 数据库游标

    2018-09-21 13:48:38
    1.1游标的概念 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且...
  • oracle数据库游标的使用

    千次阅读 2018-07-27 01:33:44
    在写java程序有集合的概念,那么在pl/sql也会用到多条记录,这时候要用到游标游标可以存储查询返回的多条数据 语法: CURSOR 游标名 [(参数名 数据类型, 参数名 数据类型…)] IS SELECT 语句; 例如:...
  • 数据库 游标

    2020-08-07 22:55:22
    游标cursor)是一个存储在DBMS服务器上的数据库查询,它不是一条SELECT语句,而是该被该语句检索出来结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览器中的数据。 游标特性 能够标记游标为只读,是...
  • Oracle中的Cursor(游标)

    2011-08-30 09:08:27
    游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘...
  • 数据库中游标是一个十分重要的概念游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条T_SQL 选择...
  • PL/SQL中的游标(cursor)

    2017-04-27 08:50:36
    PL/SQL中的游标(cursor)游标的相关概念什么是游标 从表中检索出结果集,从中每次指向一条记录进行交互的机制。 关系数据库中的操作是在完整的行集合上执行的。 理解:由SELECT 语句返回的行集合包括满足该语句的...
  • 游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 221
精华内容 88
关键字:

数据库中cursor游标的概念