A. sql中的游标是什么意思有什么用
我复制的答案,一时间也说不清楚,大致上就是一个记录数据执行的一种机制的规律 在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。 1.1 游标和游标的优点 在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条T_SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。 我们知道关系数据库管理系统实质是面向集合的,在MS SQL SERVER 中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。 由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。 1.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 游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。在本章中我们主要讲述服务器(后台)游标。 select count(id) from info select * from info --清除所有记录 truncate table info declare @i int set @i=1 while @i<1000000 begin insert into info values('Justin'+str(@i),'深圳'+str(@i)) set @i=@i+1 end 1.3 游标操作 使用游标有四种基本的步骤:声明游标、打开游标、提取数据、关闭游标。 声明游标 象使用其它类型的变量一样,使用一个游标之前,首先应当声明它。游标的声明包括两个部分:游标的名称;这个游标所用到的SQL语句。如要声明一个叫作Cus-tomerCursor的游标用以查询地址在北京的客户的姓名、帐号及其余额,您可以编写如下代码: DECLARE CustomerCursor CURSOR FOR SELECT acct_no,name,balance FROM customer WHERE province="北京"; 在游标的声明中有一点值得注意的是,如同其它变量的声明一样,声明游标的这一段代码行是不执行的,您不能将debug时的断点设在这一代码行上,也不能用IF...END IF语句来声明两个同名的游标,如下列的代码就是错误的。 IF Is_prov="北京"THEN DECLARE CustomerCursor CURSOR FOR SELECT acct_no,name,balance FROM customer WHERE province="北京"; ELSE DECLARE CustomerCursor CURSOR FOR SELECT acct_no,name,balance FROM customer WHERE province〈〉"北京";
求采纳
B. 数据库的游标的作用是什么,如何编写
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。主语言是面向记录的,一组主变量一次只能存放一条记录。仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式。在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?这时我们就会使用游标。
-----------------------------------------------------------
使用游标会降低执行效率,平时尽可能不要用
declare @column1 varchar(10)
declare @column2 varchar(10)
declare cursor1 cursor for select column1, column2 from tablename --声明游标(用select语句,可以通过where等语句限定游标取的结果集)
open cursor1 --打开游标
fetch next from cursor1 into @column1, @column2 --取游标的值到变量
while (@@fetch_status=0) --有记录的话
begin
--处理
fetch next from cursor1 into @column1, @column2 --取下一个
end
close cursor1 --关闭游标
deallocate cursor1 --释放游标
C. sql server 中游标的作用麻烦简单举例说明。
游标说简单点都是设置一个数据表的行指针,然后使用循环等操作数据
以下是一个示例
createprocereUpdateValue--存储过程里面放置游标
as
begin
declareUpdateCursorcursor--声明一个游标,查询满足条件的数据
forselect主键,SD_VALfromEQ_SD_D
openUpdateCursor--打开
declare@idint,@SD_VALnvarchar(20)--声明一个变量,用于读取游标中的值
fetchnextfromUpdateCursorinto@id,@SD_VAL
while@@fetch_status=0--循环读取
begin
updateEQ_SD_Dsetname=@SD_VALwhereid=@id
fetchnextfromUpdateCursorinto@id,@SD_VAL
end
closeUpdateCursor--关闭
deallocateUpdateCursor--删除
end
这里是一个教学
http://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html
D. sql什么是游标为什么要使用游标
游标就是结果集,在编程的时候提取数据用的。
E. SQL中如何确定游标到了最后以及游标的作用是什么
@@fetch_status=0 是游标提取数据失败,即数据提取结束到最后了。
游标主要作用是,操作SQL查询结果集。
以下为典型游标的应用:
createproccursorTest
@_idint=0,
@_namevarchar(50)=''
as--创建游标
declare@cursorcursor--设定游标欲操作的数据集
set@cursor=cursorfor
select_id,_namefromusers
open@cursor--打开游标
fetchnextfrom@cursorinto@_id,@_name--移动游标指向到第一条数据,提取第一条数据存放在变量中
while(@@fetch_status=0)begin--如果上一次操作成功则继续循环
print@_name--操作提出的数据
fetchnextfrom@cursorinto@_id,@_name--继续提下一行
end
close@cursor--关闭游标
deallocate@cursor--删除游标
F. sql 中游标的作用及使用方法
游标可以从数据库中查询出一个结果集,在你关闭它之前,你可以反复使用这个结果集,读取这个结果集中的任意行任意字段的内容,一般在存储过程或前台程序中常见。
G. 嵌入式SQL语言中使用游标的作用
游标有多种,功能也有多种,典型的是用来实现循环:
SQL的SELECT语句返回的结果是集合,一般
高级语言
不便于表示这种集合,没有适合的数据类型用来存放SELECT返回的多行数据结果。于是就引入了游标的概念,一般利用游标FOREACH来扫描SELECT返回的所有数据
游标也可以象
文件指针
一样向前/后移动,并且可以修改数据
H. sql中的游标是什么怎样用呢
在数据库中,游标提供了一种对从表中检索出的数据进行操作的灵活手段。就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
游标总是与一条SQL
选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。
游标关于数据库中的操作会对整个行集产生影响。由 SELECT 语句返回的行集包括所有满足该语句 WHERE 子句中条件的行。由语句所返回的这一完整的行集被称为结果集。
应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的结果集扩展。
(8)sql中游标的作用扩展阅读:
游标通过以下方式扩展结果处理:
1.允许定位在结果集的特定行。
2.从结果集的当前位置检索一行或多行。
3.支持对结果集中当前位置的行进行数据修改。
4.为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。
5.提供脚本、存储过程和触发器中使用的访问结果集中的数据的 Transact-SQL 语句。
参考资料来源:搜狗网络—游标
I. SQL中游标是指什么怎么用的又什么作用
SQL语言是面向集合的,是运用关系进行运算,最擅长于集合运算。
有些功能要求也各一个地取出记录,进行运算,正规的关系语言SQL实现不了,于是衍生出过程化的
SQL游标,来逐个的取出记录。
J. SQL 数据库中的游标指的是什么,有什么作用
游标:
作用:通常情况下,关系数据库中的操作总是对整个记录集产生影响,例如使用SELECT语句检索数据表时,将得到所有满足该语句where子句中条件的记录,而在实际应用过程中,经常需要
每次处理一条或者一部分记录。在这种情况下,需要使用游标在服务器内部处理结果集合,他可
以有助于识别一个数据集合内部指定的记录,从而可以有选择的按记录执行操作。