SQL游标原理和使用方法
日期:2008年5月30日 作者:-
在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用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 infodeclare @i int
set @i=1
while @i<1000000
begin
insert into info values('Justin'+str(@i),'深圳'+str(@i)) - [1] [2] [3] [4] 下一页
-
- SQL游标原理和使用方法 相关文章:
- ·路由原理介绍
- ·液晶显示器原理图
- ·ASP.NET SESSION的使用及原理
- ·socket编程原理
- ·交换机工作原理的详细介绍
- ·WLAN与GSM室内覆盖合路原理和干扰分析
- ·ADSL原理以及ADSL系统组成简介
- ·SQL游标原理和使用方法
- ·主板上电原理与维修--上电维修
- ·扫描仪原理完全剖析
- SQL游标原理和使用方法 相关软件
- ·政治经济学原理
- ·自由秩序原理
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:QQ表情 猪头维维系列
精品推荐
热点TOP10
- ·学习SQL语句之SQL语句大全
- ·最新免费HTTP代理服务器
- ·精妙SQL语句收集
- ·SQL Server不存在或访问被拒绝 问题的解决
- ·SQL Server 练习题
- ·巴塞尔新资本协议概述
- ·数据库连接字符串大全
- ·认识VF--Visual FoxPro 漫谈
- ·SQLSERVER中,数据库同步的实现
- ·SQLPLUS命令的使用大全
- ·SQL里的cast和convert
- ·用于 SELECT 和 WHERE 子句的函数
- ·SQL中CASE的用法
- ·MS-SQL开发常用汇总和t-sql技巧集锦
- ·学习SQL SERVER的存储过程-之一认识存储过程语法
- ·正确使用137G以上的大硬盘
- ·讨论: SELECT TOP N 问题
- ·什么是SQL注入法攻击
- ·怎么用sql修改表名
- ·Delphi程序执行时实时生成报表
特别推荐
- ·SQL注入攻击危害最小化措施
- ·提高SQL执行效率的几个技巧
- ·破译MySQL数据库root密码的集中方法
- ·无法打开用户默认数据库的解决方案
- ·SQL脚本注入另类手段
- ·警惕恶意软件 网站SQL注入防御实战
- ·从三个方面进行讲解如何适当优化
- ·Vista下安装SQL Sever 2005报错的解决办法
- ·学习SQL语句之SQL语句大全
- ·打造SQL Server2000的安全策略
- ·SQL语句优化技术分析
- ·MySQL导入导出方法与工具
- ·CS服务器架设方法
- ·改进的socket控件
- ·什么是SQL注入法攻击
- ·用SQL语句删除重复记录的四种方法
- ·数据库查询优化
- ·MySQL常见错误问答!
- ·MySQL从后门进企业市场
- ·精妙SQL语句收集
