- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH09-索引、视图和事务
第九章 索引、视图和事务;预习检查;本章目标;什么是索引1;英文词典的查询目录编排顺序与单词在词典中的顺序是一致的(按a-z),这种索引在数据库中称为聚集索引。
汉语词典一般也是按照拼音顺序排列所有汉字,索引部分一般有两种:拼音索引目录(聚集索引)、偏旁部首索引目录(类似于非聚集索引,即索引顺序与内容编排顺序不一致)。
;什么是索引3;SQL Server数据库索引;索引分类—聚集索引;非聚集索引(Non-clustered):非聚集索引指定表中数据行的逻辑顺序,索引中包含指向数据存储位置的指针。一般来说,非聚集索引中索引键值的顺序与数据表中各行数据存放的物理顺序不匹配。
非聚集索引建立在聚集索引之上,是在索引页中建立一个对聚集索引进行检索的聚集索引,它通过对聚集索引的检索来查询数据。因此一张数据表可以建立多个非聚集索引。;建立聚集索引或非聚集索引的总结和比较;唯一索引:表中两行记录在建立唯一索引的列不允许有相同的值。
创建了唯一约束的列将自动创建唯一索引。索引列可以有空值NULL。
唯一索引可以建立在一个或者多个列上,这些列或列的组合必须有唯一的值。
主键索引:为表定义一个主键将自动创建同名的主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空NULL。;复合索引;索引的优缺点;创建索引的指导原则;使用索引时注意事项;使用SSMS图形化工具创建索引;使用T-SQL语句创建索引;创建索引示例1;在Student表的StudentName列创建非聚集索引;使用系统存储过程sp_helpIndex查看索引;使用唯一索引IX_BANK查询名称中含“北京”的银行信息。;使用索引查询“李”姓的学生信息;为什么需要视图;视图是一张虚拟表,是从一个或几个基本表或其他视图中选择某些列而组成的虚拟表。事实上,视图是存储在数据库中的SELECT查询语句。
表示一张表的部分数据或多张表的综合数据
其结构和数据是建立在对表的查询基础上
视图中不存放数据
数据存放在视图所引用的原始表中
对于原始数据表,可以根据不同用户的不同需求,创建不同的视图。;视图的用途
筛选表中的行
防止未经许可的用户访问敏感数据
降低数据库的复杂程度
将多个物理数据库抽象为一个逻辑数据库
;使用SSMS图形化工具创建视图;使用T-SQL语句创建视图;创建包括储户姓名列、所有银行卡总余额列的视图View_TotalDeposit;使用已创建的视图View_TotalDeposit创建新视图,包括姓名,总存款,身份证号和电话。;使用视图示例;使用视图总结及注意事项;为什么需要事务;什么是事务;一个逻辑工作单元要成为事务必须具备以下四个属性,简称ACID 属性:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
永久性(Durability)
;脏读 :脏读就是指当事务A正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,事务B也访问这个数据,然后使用了这个数据。脏数据:事务B读取的就是数据项的一个“临时”的值,就是脏数据。;SQL Server通过以下3种事务模式管理事务。
(1) 自动提交事务模式:每条单独的语句都是一个事务。在此模式下,每条Transact-SQL语句在成功执行完成后,都被自动提交,如果遇到错误,则自动回滚该语句。该模式为系统默认的事务管理模式。
(2) 显式事务模式:该模式允许用户定义事务的启动和结束。事务以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。
显式事务是程序设计时最常用的事务模式。
(3) 隐性事务模式:通过设置SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置为打开,其后的T-SQL语句自动启动一个新事务,在当前事务完成提交或回滚一个事务后,下一个 T-SQL 语句又将自动启动一个新事务。隐性事务不需要使用BEGIN TRANSACTION语句标识事务的开始。;管理事务的T-SQL语句;使用事务的方法;使用显式事务解决前述转账问题。;总结
文档评论(0)