引用
问题描述:有以下2张表,
a_id a_name a_salary
Y2007001 达哥 3776
Y2007002 小杜 3232
Y2007003 小胖 53434
表A
b_id b.salary
Y2007001 467
Y2007002 532
Y2007003 987
表B
现在希望得到这样的数据表A里的a_Saloary加上表B的b_Salary是当前的总工资,并更新到表A。
你可以用视图来,表连接下就可以。
现在我们考虑下让SQL自己来处理,游标就是很好的方法。
原理:游标就是把数据按照指定要求提取出相应的数据集,然后逐条进行数据处理。
1.1游标的概念
游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
1.2 游标的优点
从游标定义可以得到游标的如下优点,这些优点使游标在实际应用中发挥了重要作用:
1)允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。
2)提供对基于游标位置的表中的行进行删除和更新的能力。
3)游标实际上作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。
1.3 游标的使用
讲了这个多游标的优点,现在我们就亲自来揭开游标的神秘的面纱。
使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。
1.3.1声明游标
最简单游标声明:DECLARE <游标名>CURSOR FOR<SELECT语句>;
其中select语句可以是简单查询,也可以是复杂的接连查询和嵌套查询
1.3.2 打开游标
非常简单,我们就打开刚才我们声明的游标mycursor
OPEN mycursor
1.3.3读取数据
FETCH [ NEXT | PRIOR | FIRST | LAST] FROM { 游标名 | @游标变量名 } [ INTO @变量名 [,…] ]
参数说明:
NEXT 取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。
INTO @变量名[,…] 把提取操作的列数据放到局部变量中。
列表中的各个变量从左到右与游标结果集中的相应列相关联。
各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。
1.3.4关闭游标
CLOSE mycursor
1.3.5删除游标
DEALLOCATE mycursor
实例1
declare @id nvarchar(20) --定义变量来保存ID号
declare @A float --定义变量来保存值
declare mycursor cursor for select * from tb_c --为所获得的数据集指定游标
open mycursor --打开游标
fetch next from mycursor into @id,@A --开始抓第一条数据
while(@@fetch_status=0) --如果数据集里一直有数据
begin
select tb_b.name,(tb_b.gz + @A) from tb_b where tb_b.id = @id --开始做想做的事(什么更新呀,删除呀)
fetch next from mycursor into @id,@A --跳到下一条数据
end
close mycursor --关闭游标
deallocate mycursor --删除游标
分享到:
相关推荐
有个SQl游标学习文档,传上分享参考!大家学习,可以请顶下。
在SQL(结构化查询语言)中,游标(Cursor)是一种重要的编程工具,它允许数据库开发者按需逐行处理查询结果。...通过不断练习和学习,你将能够更好地理解和运用SQL游标,从而提升你的数据库开发能力。
SQL游标是数据库管理系统中一个重要的概念,尤其在Oracle数据库中,它被广泛用于处理复杂的查询和数据操作。本教程将深入探讨SQL游标的使用,帮助你更好地理解和掌握这一技术。 首先,我们要明白什么是SQL游标。...
Oracle PL/SQL 游标的学习 本资源主要讲解了 Oracle PL/SQL 游标的概念、分类、属性和使用方法,为读者提供了详细的学习资料。...本资源提供了详细的 Oracle PL/SQL 游标学习资料,为读者提供了实用的学习经验。
标题“关于sql游标的使用教程及案例”指出了文档的核心内容,即将对SQL游标使用进行讲解,并通过具体案例加深理解。...通过上述教程的学习,读者可以学会如何在Oracle数据库中使用SQL游标来处理和控制数据查询结果集。
SQL游标是数据库管理系统中一个重要的概念,它允许程序员或数据库管理员逐行处理查询结果集,而不仅仅是一次性处理整个结果集。在处理大量数据或需要按...通过实践和不断学习,你将更加熟练地运用SQL游标解决实际问题。
Sqlserver游标拼接学习,简单的游标学习,直接exec执行查看结果
在学习和实践中,可以参考提供的“游标”压缩包文件,其中包含更具体的示例和帮助文档,以加深对游标的理解。这些实例将帮助新手快速上手,掌握在实际项目中运用游标的技巧。 总之,无论是Oracle还是SQL,游标都是...
通过本指南的学习,读者将能够更加熟练地掌握SQL游标的使用技巧。 #### 二、基本概念 - **游标**:在数据库编程中,游标是一种用于处理结果集的方式,它允许程序员逐行读取查询结果。 - **显式游标**:由用户定义并...
在本文档《基于SQL游标的数据库应用与探析》中,作者张润和方继才深入探讨了SQL游标的概念、作用、优势以及在SQL Server 2012环境下如何应用游标进行数据处理的方法,并验证了其有效性。 首先,游标允许程序员在...
### SQL游标概览 #### 一、引言 在数据库操作中,游标是一种非常重要的机制,尤其在处理大量数据或需要逐行处理数据的情况下。本文档将深入探讨SQL游标的基本概念及其应用场景,帮助读者理解游标的工作原理及如何...
隐式游标是Oracle自动为每个SQL语句创建的,用户无法直接控制;显式游标则需要用户显式声明并管理。引用游标允许在运行时动态确定查询,分为强类型和弱类型,用于处理动态SQL。 **二、隐式游标** 隐式游标是Oracle...
《SQL游标使用方法.txt》文件可能会涵盖如何在T-SQL(Transact-SQL)中声明、打开、移动和关闭游标,以及如何在游标中执行INSERT、UPDATE和DELETE操作。SQL Server游标有五种类型:快照、静态、动态、键集驱动和可...
在提供的文件"SQL游标t和函数的用法.sql"中,很可能是包含了一些示例代码,演示如何在SQL Server中使用游标和函数。你可以通过运行这个文件来学习具体的用法和技巧。通过实践,你会更加熟练地掌握这些工具,从而在...
通过阅读提供的链接文章《PL-SQL游标-(抄) - owftc - JavaEye技术网站》(链接可能已失效),你可以获取更多关于游标使用的具体示例和技巧。在实际工作中,游标与其他工具如源码和工具相结合,将有助于解决复杂的...
接下来,我们将学习如何在SQL Server存储过程中使用游标: 1. **声明游标**:首先需要声明一个游标,指定其类型、源数据集(通常是查询语句)以及其属性。例如: ```sql DECLARE @MyCursor CURSOR FOR SELECT * FROM...
### Oracle数据库的游标学习总结 #### 一、引言 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集。通过游标,我们可以逐行地读取查询结果,这对于复杂的业务逻辑处理非常有用。本文将详细介绍Oracle...
在给定的代码示例中,作者通过创建一个存储过程`proc_cursor`来实现基于游标的分页功能,这种方法虽然在某些场景下可能不如其他方法高效,但在理解SQL Server游标和分页原理方面提供了很好的学习材料。 ### 数据库...
在VB(Visual Basic)编程中,连接SQL数据库并利用游标和存储过程是常见的操作,这对于数据处理和应用开发至关重要。下面将详细讲解这个主题。 首先,VB与SQL的连接通常通过ADO(ActiveX Data Objects)来实现。ADO...