数据库行为特征设计SQL程序设计.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fetch next from cur_students into @id,@id_side,@sex,@avggrade end if @haveerror=1 rollback else commit close cur_students deallocate cur_students end 使用select语句完成得票同学的编号和姓名的查询,比较和以上做法的优缺点: 建立视图: (每个学生及邻座学生信息) create view v_stdpair (id,name,sex,avggrade, id_side,sex_side,avggrade_side) as select a.id,a.name,a.sex,a.avggrade,a.id_side, b.sex,b.avggrade from students a left join students b on a.id_side=b.id select id,name from v_stdpair where (sex=1 and sex_side=0) or (sex=sex_side and avggrade=avggrade_side) or id_side is null 8.9 临时表 临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。临时表不存储在当前数据库内,而是存储在系统数据库 tempdb 内。临时表有两种类型。 本地临时表 以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表。 不同任务执行同一个存储过程,在存储过程中创建的临时表内容可以各不相同。 本地临时表常用于处理业务逻辑中存放中间结果,然后由中间结果产生最终结果。 最终结果产生后不再需要中间结果,若使用普通表,则必须手工删除。 不同用户执行同一个存储过程,结果可能各不相同,若使用普通表存放中间结果,做到这一点比较困难。 全局临时表 以两个井号 (##) 开头的那些表名。在所有连接上都能看到全局临时表。 所有任务停止引用全局临时表,这些表即被除去。 通常情况下,只要创建全局临时表的连接断开,全局临时表即被除去。 例:临时表的建立、更新和删除方法 建立临时表: Create table #temp (id char(6) primary key,name char(10)); 更新临时表、查询表 Insert into #temp (id,name) select id,name from students 若select中包含order by,不一定有效 select * from #temp 删除临时表:用查询分析器中菜单,断开与数据库的连接,系统自动删除该临时表。(重新连接后该表不再存在) 例:不同任务下临时表各不相同 启动两个查询分析器 在同一数据库中分别建立两个临时表#temp。 分别插入不同的数据行,可以发现两个表五不干扰。 可以看出,即使同一用户启动两个查询分析器,由于是不同的任务,建立的同名临时表无不相关。 例:财务系统中记帐处理 假设存在下列凭证 借 现金 10,000 贷 销售收入-商品A 6,000 贷 销售收入-商品B 4,000 记入现金科目的帐簿格式如下: (原一条记录要分拆成多条记录) 日期 凭证号 对方科目 借方金额 贷方金额 余额 销售收入-商品A 6,000 16,000 销售收入-商品B 4,000 20,000 由凭证数据可产生现金日记帐,日记帐数据存放的数据表可选择: 普通表:缺点是需要很多或很庞大的表存放帐簿数据,而帐簿数据完全和凭证数据重复,存在数据冗余及数据的一致性问题。 临时表:由于帐簿仅用于查询、打印或汇总,完成后就不再需要这些数据,必须删除,同时,不同用户(可能同时)查询帐簿的内容可能并不相同,临时表正适合这种需求。缺点是生成临时表时,需要扫描整个凭证表,当凭证数据量很大时,执行效率是必须考虑的问题。 8.10 table 类型 一种特殊的数据类型,用于存储结果集以供后续处理。 可将函数(即表值函数)和变量声明为table类型。table 变量可用于函数、存储过程和批处理中。 同普通变量一样,作用域为声明该变量的函数、存储过程或批处理。 在其作用域内,table 变量可像常规表那样使用。在定义 table 变量的函数、存储过程或批处理结束时,自动清除 table 变量。 table 变量有以下特点: 作用域范围较临时表更小,由此带来以下优点: 在存储过程中使用表变量与使用临时表相比,减少了存储过程的重新编译量。(存储过程中使用临时表,临时表可以在过

文档评论(0)

宝贝计划 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档