浅析SQL数据库中游标及其应用

来源 :考试周刊 | 被引量 : 0次 | 上传用户:xkt376
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 游标是SQL数据库中从数据记录结果集中提取记录的一种重要机制,其手段灵活,形式多样。本文介绍了游标的概念、分类、生命周期和使用游标应该注意的问题。
  关键词: 游标 SQL数据库 教学应用
  一、游标的概念
  游标(cursor)是系统为用户专门开设的用来存放SQL语句执行结果的一个数据缓冲区。通常在数据库开发过程中要检索一条记录时,我们可以使用SELECT语句操作。可是,如果想从某个结果集中逐一的读取记录,使用SELECT语句则变得麻烦,此时利用游标可以轻松解决。游标其实可以理解为一个定义在特定数据集上的指针,可以控制这个指针遍历数据集,或者仅仅是指向特定的行。用户通过SQL语句从游标中逐一地得到记录,然后赋给主变量,再通过主语言进一步处理。
  二、游标的分类
  游标是指向SELECT语句查询出的多行数据的指针,SELECT语句查询出的行组成一结果表,称为活动集,游标指向的行称为当前行。一般说来一般说来,游标分为三类,即滚动游标、非滚动游标和更新游标。
  1.滚动游标是游标的位置可来回移动,即程序可以依据实际需要指向活动集中某一条记录。
  2.非滚动游标是指活动集中的每条记录不可被选择读取而只能被依次读取。
  3.更新游标活动集中的记录只能被一次读取,其特点在于:数据库将游标当前指向的记录加锁,当程序读下一条记录时,本条记录解锁,下一条记录加锁,锁加在数据库基本表对应的行上。
  三、游标的生命周期
  在T-SQL中,游标的生命周期由五个部分组成,即定义游标(DECLARE)、打开游标(Open)、使用游标(FETCH)、关闭游标(CLOSE)和释放游标(DEALLOCATE)。具体实现步骤为:
  1.定义游标
  在T-SQL中,定义一个游标可以是非常简单的,也可以是相对复杂的,取决于游标的参数,而游标的参数设置取决于你对游标原理的了解程度。游标其实可以理解成一个定义在特定数据集上的指针,我们可以控制这个指针遍历数据集,或者仅仅是指向特定的行,所以游标是定义在以Select开始的数据集上的,T-SQL中的游标定义的格式如下:
  DECLARE〈游标名〉[SCROLL]CURSOR FOR SELECT语句
  有关键字SCROLL的DECLARE语句定义的是滚动游标。SELECT语句可表为:
  SELECT子句
  [INTO子句]
  FROM子句
  [WHERE子句]
  [GROUP BY子句]
  [HAVING子句]
  [ORDER BY子句]
  [INTO TEMP子句]
  DECLARE语句的作用是在数据库系统表中分配该游标资源,给游标一个自己的名字。游标名的作用范围是只要游标不被释放(FREE),在定义它的模块内就有效。
  2.打开游标
  当定义完游标后,游标需要打开后使用,只有简单一行代码。注意,当全局游标和局部游标变量重名时,默认会打开局部变量游标。打开游标语句执行游标定义中的SELECT语句,查询结果存放在游标缓冲区中(当打开的是滚动游标时,还要建一个临时表)。当游标的访问位置没有指定时,默认将游标指针指向游标区中的第一条记录。查询结果的内容依据设置的查询语句和查询条件。打开游标的语句格式:
  OPEN〈游标名〉
  3.使用游标
  游标的使用分为两部分:一部分是操作游标在数据集内的指向,另一部分是将游标所指向的行的部分或全部内容进行操作。代码如下:
  FETCH[[NEXT|PRIOR|FIRST|LAST| ABSOLUTE n| RELATIVE n]
  FROM]〈游标名〉
  [INTO @变量1,@变量2,…]
  4.关闭游标
  在游标使用完之后,一定要记得关闭,关闭后游标区的数据不可再读,但可以使用OPEN语句再次打开后再使用该游标。代码如下:
  CLOSE〈游标名〉
  5.释放游标
  当游标不再需要被使用后释放游标。代码如下:
  DEALLOCATE〈游标名〉
  四、游标的优化
  1.用完之后一定要关闭和释放。
  2.尽量不要在大量数据上定义游标。
  3.尽量不要使用游标上更新数据。
  4.尽量不要使用insensitive,static和keyset这些参数定义游标。
  5.如果只对数据进行读取,当读取时只用到FETCH NEXT选项,则最好使用FORWARD_ONLY参数。
  五、结语
  在数据库中,游标提供了一种可以操作从表中已被检索出的数据结果集中记录的灵活机制,可以从多条数据记录的结果集中每次提取一条记录。尽管如此,但游标会一定程度地影响系统的性能,如使用游标会导致页锁与表锁的增加,以及网络通信量的增加等,所以更要正确使用游标,灵活应用游标。
  参考文献:
  [1]田耕.浅谈数据库游标及其应用[J].广东金融电脑,2000(03).
  [2]林晓峰.SQL SER VER服务器游标应用方法与实例[J].成才,2000(07).
  [3]陈芳勤.SQL Server 2000中游标的应用[J].中国科技信息,2008(13).
其他文献
摘 要: 耐久跑是初中体育教学大纲规定的主要田径教学项目之一,但由于耐久跑的练习时间长、学生体能消耗大,中学生普遍存在厌烦和抵触情绪,影响耐久跑的教学及发挥其应有的作用。就如何培养中学生耐久跑的兴趣,调动他们的学习积极性,作者进行了探讨。  关键词: 初中体育 耐久跑 教学策略  初中生大多13至15岁,正处于身体发育成长时期,身体各器官发育不平衡,对耐力项目的适应性较差。但这个年龄阶段的学生身体
期刊
摘 要: 体育教学的绝招其实就是体育教师教法的绝招,是体育教师教学指导的妙招。教学绝招是用来解决教学疑难杂症的,体育教学的绝招可以使难懂晦涩的知识变得更简单更容易,从而对教学目标的实现有事半功倍的作用。本文从教学方法和教师指导方面总结和提炼体育教学的绝招,从而更好地指导体育课堂教学。  关键词: 中小学体育 教学绝招 教学改革  一、体育教学绝招是教学改革催生的产物  体育教学中经常出现一些教学难
期刊
杨家声,出生于1945年,是金顶街二区的一名居民。杨老先生很久之前就认识到,坚持绿色发展、实现人与自然和谐的重要性。他秉承着绿色发展人人有责的观念,不但身体力行,还积极地宣传绿色发展理念。从2012年起,杨老先生探亲访友、旅游观光一直坚持采用公共交通方式,并带动身边人也这样做。  在杨老先生看来,伴随着改革开放和经济发展,物质越来越丰富,生活条件也越来越好。我们在尽情享受周到服务和琳琅满目商品的同
期刊
终身体育是当今教育为现代人们生活指出的一种新的生活理念。在社会高速发展的同时,人们更应该关注自身的健康及健康的生活方式。终身体育是指人终身从事身体锻炼和终身进行体育的行为。意识是人的头脑对于客观物质世界的反映,是感觉、思维等各种心理过程的总和。而终身体育意识是人在生命的开始和结束过程中,有明确目的的从事体育和参加身体锻炼的思想和观念。这就是说,在人的成长过程中,每个年龄阶段都应从事体育锻炼和接受体
期刊
如何上好第一节体育课?“新”有两个含义:一个是新毕业的老师,第一次踏入教师行业,第一次为人师表;另一个是有经验的体育老师,新学期接手新的班级。两者虽然教龄上有所不同,但是对待新学期的第一节体育课,都应当足够注视,上好第一节体育课能够建立良好的师生关系,为以后教学工作的开展打下坚实的基础。  随着上课铃声的响起,我走进教室。学生都很安静地看着我,首先我进行了自我介绍,同时班级上还有几个我曾经训练过参
期刊
目的:以咪哒唑仑为探针,研究CYP3A选择性抑制剂酮康唑及急性肝损伤状态对大鼠肝脏CYP3A药物代谢酶体内外代谢活性的影响,建立评价肝脏CYP3A药物代谢功能的指标。 方法:1.建立咪哒唑仑(MDZ)的HPLC测定方法,以地西泮为内标,分别测定血浆、肝匀浆和肝细胞悬液上清液中的MDZ浓度。2.以MDZ为CYP3A底物,分两组实验:抑制剂组采用酮康唑(KTZ)为CYP3A选择性抑制剂,通过静脉
随着社会的进步和城市建设的加快,现代人们对于土地资源的需求也越来越高,过去,由于城市发展的需要,各式各样的建筑在平地中拔地而起,而当时由于技术水平的限制,这些建筑普遍
许多矿山采区采用振动出矿技术以配合高效率大量崩矿 的采矿方法,但普遍存在的不利因素是溜矿口卡块、块矿组结拱,尤其是高位结拱非常难处理。 1 卡块与结拱的原因分析 如图1所示
摘 要: 校园网是学生学习的良好平台,可以在校园的任何一个角落随时随地利用网络学习,作为计算机应用基础课程的教学设计者要在整个网络环境上提供学习资源,包括课堂、图书馆、教室、寝室等各个可以学习的地方,为学生提供学习条件,最主要的是丰富课堂。  关键词: 校园网络系统 《计算机应用基础》 教学设计  一、引言  随着网络技术的迅猛发展,校园网络已经在各校园陆续建立,给学生生活带来很大的变化,在给人们
期刊
在鄂霍茨克(Okhotsk)海收集的海胆中分离得到一个新的磺酸衍生物,经理化常数和光谱分析等方法,并与文献对比该化合物鉴定为,(Z)-4-methylundeca-1,9-diene-6-sulfonic acid (1)。另外,我们在RAW264.7细胞中,对该化合物1进行了由脂多糖(LPS)诱导的系统性抗炎活性研究,其结果,化合物1可以显著抑制NO, iNOS, PGE2和COX-2的表达,同