第5章-视图、索引、游标及事务-ln.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 视图、索引、游标及事务 5.1 视图 5.2 索引 5.3 游标 5.4 事务 思考题 5.1 视图 视图是从一个表、多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。 视图不是真实存在的基本表,而是一个虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。 视图也包括被定义的数据列和多个数据行。但从本质上讲,数据列和数据行都来源于其引用的表。 视图的优点 视图集中 简化操作 定制数据 合并分割数据 安全性 用T-SQL命令对视图操作 分析以下T-SQL命令的作用 use students GO create view S_SC(学号,姓名,课程号,分数) as select SInfo.SNo,SInfo.SName,SC.CNo,SC.Grade from SInfo,SC where SInfo.SNo=SC.SNo GO select * from S_SC GO 用T-SQL命令对视图操作 更新视图 update S_SC set 分数=70 where 学号GO select * from S_SC GO 删除视图 drop view S_SC 用企业管理器向导对视图操作 创建视图 查看和修改视图 视图数据的更新 删除视图 参看:P173-176 5.1 视图 5.2 索引 5.3 游标 5.4 事务 思考题 7.2 索引 索引是数据库中一个比较重要的对象。数据库的索引与书的目录很相似,索引使得数据库应用程序能够不扫描全表而找到想要的数据。 索引可以建立在一列或多个列的组合上,也可以在数据库的多个列上建立不同的索引,但这些列应该是经常作为查询条件的列。 索引的分类 聚集索引(Clustered Index):索引顺序与行的物理存储顺序完全相同,所以每个表只能有一个聚集索引,且在表的主键列上自动创建聚集索引。 非聚集索引:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。索引仅仅记录指向表中行的位置的指针,通过指针可以快速准确的定位数据。 唯一性索引(Unique Index):能够保证在创建索引的列或多列的组合上不包括重复的数据,聚集或非聚集索引都可以是唯一性索引。 创建索引前考虑的问题 只有表的拥有者才能在表上创建索引 每一个表上只能创建一个聚簇索引 每一个表上最多能创建249个非聚簇索引 一个索引最多包含16个列,最大为900字节 用T-SQL命令对索引操作 分析以下T-SQL命令 use students GO Create index No_index on SInfo(IDCard) GO drop index SInfo.No_index 用企业管理器对索引操作 创建索引 查看与修改索引 删除索引 参看P178-183 5.1 视图 5.2 索引 5.3 游标 5.4 事务 思考题 5.3 游标 游标是系统为用户在内存中开辟的一个数据缓冲区,用于存放SQL语句的查询结果。每个游标都有一个名字,通过宿主语言的循环使SQL逐一从游标中读取记录,赋给主变量,然后由宿主语言作进一步的处理。 游标的操作一般分为如下几个步骤: 定义游标 DECLARE 游标名 CURSOR FOR SELECT语句 定义游标后并不马上执行定义中的SELECT语句。 打开游标 OPEN 游标名 打开游标后将执行定义中的SELECT语句,执行结果存入游标缓冲区,游标指针指向第一条记录。 5.3 游标 推进游标 FETCH 游标名 INTO 主变量名表 主变量名表中的主变量要与SELECT语句查询结果中的每一个属性相对,主变量间用逗号分隔。 关闭游标 CLOSE 游标名 删除游标 DEALLOCATE 游标名 分析以下T-SQL命令作用 DECLARE @userage int DECLARE userage_cur CURSOR FOR SELECT Age FROM SInfo OPEN userage_cur FETCH next from userage_cur into @userage WHILE @@fetch_status=0 BEGIN UPDATE SInfo Set Age = Age+1 FETCH next from userage_cur into @userage END CLOSE userage_cur DEALLOCATE userage_cur 5.1 视图 5.2 索引 5.3 游标 5.4 事务 思考题 5.4 事务

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档