SQL游标快速上手
问题描述:有以下2张表,
表A
0_id 0_name 0_Salary
Y2007001 达哥 3666
Y2007002 小杜 4888
Y2007003 达哥 3666
表B
a_id a_salary
Y2007001 333
Y2007002 444
Y2007003 555
现在希望得到这样的数据表A里的O_Saloary加上表B的A_Salary是当前的总工资,并更新到表A。
你可以用视图来,表连接下就可以。
现在我们考虑下让SQL自己来处理,游标就是很好的方法。
原理:游标就是把数据按照指定要求提取出相应的数据集,然后逐条进行数据处理。
1.1游标的概念
游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
1.2 游标的优点
从游标定义可以得到游标的如下优点,这些优点使游标在实际应用中发挥了重要作用:
1)允许程序对由查询语句select返回的行集合中的每一行执行相同或
相关文档:
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......
问题描述:
本题用到下面三个关系表:
CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级
BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数
BORROW 借书记录。 CNO 借书卡号,BNO 书号 ......
JOIN优化
MySQL中join的实现采用的是Nested Loop Join算法。通过驱动表的结果集作为循环基础数据,然后将该结果集中的数据作为过滤
条件一条条的到下一个表中查询数据,最后合并结果,如果存在后续表,过程也如此。
尽量减少join语句中nested loop循环的次数。最有效的方法是让驱动表的结果集尽可能的小
优先优化nested ......
ttp.bat
sqlplus user/pwd@TTPPANADB @ttp
ttp.sql
drop user ttpuser cascade;
CREATE USER TTPUSER IDENTIFIED BY e0ttpuser DEFAULT TABLESPACE avcrt001 TEMPORARY TABLESPACE TEMP PROFILE DEFAULT;
GRANT CONNECT TO TTPUSER;
GRANT ALTER SESSION TO TTPUSER;
GRANT CREATE DATABASE LINK TO TTPUSER;
GRANT ......
SQL Server 导入和导出向导提供了生成 Microsoft SQL Server 2005 Integration Services (SSIS) 包最简单的方法。SQL Server 导入和导出向导可以访问各种数据源。可以向下列源复制数据或从其中复制数据:
· Microsoft SQL Server
· 平面文件
· Microsoft Off ......