SQL Server 数据库开发经典案例教程第12章索引和视图_第1页
SQL Server 数据库开发经典案例教程第12章索引和视图_第2页
SQL Server 数据库开发经典案例教程第12章索引和视图_第3页
SQL Server 数据库开发经典案例教程第12章索引和视图_第4页
SQL Server 数据库开发经典案例教程第12章索引和视图_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章索引和视图本章目标掌握视图的优点掌握视图的创建和使用掌握索引的有点掌握索引的创建视图的概念及优点概念:视图是从不同的视角查看数据库中一个或多个表中数据的方法。视图是一种虚拟表,它的数据并不真正存储,仅保存视图定义

优点:对最终用户的好处结果更容易理解。

对开发人员的好处

简化查询限制数据检索提高安全性

创建视图创建视图的方法有两种:使用SSMS和T-SQL语句使用SSMS创建视图使用T-SQL语句创建视图

语法:CREATEVIEWview_nameAS<select语句>

示例:创建视图,显示人民邮电出版社出版的价格大于20元的书籍信息示例代码CREATEVIEWv_BookInfoASSELECTBookID,BookName,Author,ISBN,PublishDate,Price,[Content],CategoryName,PublisherNameFROMBookInfoaINNERJOINCategorybONa.CategoryID=b.CategoryIDINNERJOINPublishercONa.PublisherID=c.PublisherIDWHERE(c.PublisherName='人民邮电出版社')AND(Price>20)使用视图CREATEVIEWv_SalesInfoASSELECTd.UserName用户,a.SalesDate销售日期,c.BookName书名,b.Quantity数量,b.Price价格,b.Discount折扣,b.Price*b.Discount销售价格

FROMSalesMasterainnerjoinSalesDetailsbONa.SalesMasterID=b.SalesMasterIDinnerjoinBookInfocONb.BookID=c.BookIDinnerjoinUserInfodONa.UserID=d.UserID--使用视图查询2012年1月1日

李玲的详细销售信息SELECT*FROMv_SalesInfoWHERE销售日期='2012-1-1'AND用户='李玲'修改和删除视图修改视图语法:删除视图

语法:ALTERVIEWview_nameAS<select语句>

DROPVIEW视图名DROPVIEWv_SalesInfo示例:删除视图v_SalesInfo视图的限制只能在当前数据库中创建视图。视图名称必须遵循标识符的规则,且对每个架构都必须唯一。此外,该名称不得与该架构包含的任何表的名称相同。不能将规则或DEFAULT定义与视图相关联。定义视图的查询不能包含ORDERBY子句,除非在SELECT语句的选择列表中还有一个TOP子句。不能创建临时视图,也不能对临时表创建视图。索引索引的概念索引用来排序数据以加快搜索和排序操作的速度索引:是SQLServer编排数据的内部方法。它为SQLServer提供一种方法来编排查询数据的路由索引包含由表或视图中的一列或多列生成的键,使SQLServer可以快速有效地查找与键值关联的行.索引的分类聚集索引:聚集索引根据数据行的键值在表或视图中排序和存储这些数据行非聚集索引:非聚集索引具有独立于数据行的结构,它包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。唯一索引:唯一索引确保索引键不包含重复的值。复合索引:在多个列上同时创建索引。索引视图:在视图上创建的索引。全文索引:一种特殊类型的基于标记的功能性索引,用于帮助在字符串数据中搜索复杂的词语.创建索引创建索引有两种方法:使用SSMS(SQLServerManagementStudio)T-SQL语句语法:其中:UNIQUE指定唯一索引,可选CLUSTERED、NOCLUSTERED指定是聚集索引还是非聚集索引,可选。CREATE[UNIQUE][CLUSTERED][NONCLUSTERED]INDEXindex_nameONtable_name(column_name[,column_name]。。。)创建索引我们经常使用书的作者进行查询,所以需要针对作者(author)创建索引USEBookShopDbGO/*--检查是否存在该索引(索引存放在系统表sysindexes中)---*/IFEXISTS(SELECT

nameFROMsysindexesWHEREname='IX_BookInfo_Author')DROPINDEXBookInfo.IX_BookInfo_Author--删除索引

--创建索引CREATENONCLUSTEREDINDEXIX_BookInfo_AuthorONBookInfo(author)

--创建索引之后查询数据可以指定SQLServer查询数据的方式SELECT*FROMBookInfoWITH(INDEX=IX_BookInfo_Author)WHEREAuthorLIKE'王%'创建索引的指导原则避免对经常更新的表进行过多的索引,并且索引列要尽可能少使用多个索引可以提高更新少而数据量大的查询的性能。大量索引可以提高不修改数据的查询(例如SELECT语句)的性能,因为查询优化器有更多的索引可供选择,从而可以确定最快的访问方法经常作为查询条件的列适合创建索引经常用于排序,分组的列适合创建索引经常作为联接条件的列适合创建索引表中包含很少数据行不适合创建索引(搜索索引所花的时间比搜索数据行花的时间还多)数据行重复项很多的列不适合做索引总结视图是一种虚拟表,通常是作为执行查询的结果而创建的,视图充当对查询中指定表的筛选器。建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论