SQL Server 數(shù)據(jù)庫開發(fā)經(jīng)典案例教程第12章索引和視圖_第1頁
SQL Server 數(shù)據(jù)庫開發(fā)經(jīng)典案例教程第12章索引和視圖_第2頁
SQL Server 數(shù)據(jù)庫開發(fā)經(jīng)典案例教程第12章索引和視圖_第3頁
SQL Server 數(shù)據(jù)庫開發(fā)經(jīng)典案例教程第12章索引和視圖_第4頁
SQL Server 數(shù)據(jù)庫開發(fā)經(jīng)典案例教程第12章索引和視圖_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第12章索引和視圖本章目標掌握視圖的優(yōu)點掌握視圖的創(chuàng)建和使用掌握索引的有點掌握索引的創(chuàng)建視圖的概念及優(yōu)點概念:視圖是從不同的視角查看數(shù)據(jù)庫中一個或多個表中數(shù)據(jù)的方法。視圖是一種虛擬表,它的數(shù)據(jù)并不真正存儲,僅保存視圖定義

優(yōu)點:對最終用戶的好處結(jié)果更容易理解。

對開發(fā)人員的好處

簡化查詢限制數(shù)據(jù)檢索提高安全性

創(chuàng)建視圖創(chuàng)建視圖的方法有兩種:使用SSMS和T-SQL語句使用SSMS創(chuàng)建視圖使用T-SQL語句創(chuàng)建視圖

語法:CREATEVIEWview_nameAS<select語句>

示例:創(chuàng)建視圖,顯示人民郵電出版社出版的價格大于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數(shù)量,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視圖的限制只能在當前數(shù)據(jù)庫中創(chuàng)建視圖。視圖名稱必須遵循標識符的規(guī)則,且對每個架構(gòu)都必須唯一。此外,該名稱不得與該架構(gòu)包含的任何表的名稱相同。不能將規(guī)則或DEFAULT定義與視圖相關(guān)聯(lián)。定義視圖的查詢不能包含ORDERBY子句,除非在SELECT語句的選擇列表中還有一個TOP子句。不能創(chuàng)建臨時視圖,也不能對臨時表創(chuàng)建視圖。索引索引的概念索引用來排序數(shù)據(jù)以加快搜索和排序操作的速度索引:是SQLServer編排數(shù)據(jù)的內(nèi)部方法。它為SQLServer提供一種方法來編排查詢數(shù)據(jù)的路由索引包含由表或視圖中的一列或多列生成的鍵,使SQLServer可以快速有效地查找與鍵值關(guān)聯(lián)的行.索引的分類聚集索引:聚集索引根據(jù)數(shù)據(jù)行的鍵值在表或視圖中排序和存儲這些數(shù)據(jù)行非聚集索引:非聚集索引具有獨立于數(shù)據(jù)行的結(jié)構(gòu),它包含非聚集索引鍵值,并且每個鍵值項都有指向包含該鍵值的數(shù)據(jù)行的指針。唯一索引:唯一索引確保索引鍵不包含重復的值。復合索引:在多個列上同時創(chuàng)建索引。索引視圖:在視圖上創(chuàng)建的索引。全文索引:一種特殊類型的基于標記的功能性索引,用于幫助在字符串數(shù)據(jù)中搜索復雜的詞語.創(chuàng)建索引創(chuàng)建索引有兩種方法:使用SSMS(SQLServerManagementStudio)T-SQL語句語法:其中:UNIQUE指定唯一索引,可選CLUSTERED、NOCLUSTERED指定是聚集索引還是非聚集索引,可選。CREATE[UNIQUE][CLUSTERED][NONCLUSTERED]INDEXindex_nameONtable_name(column_name[,column_name]。。。)創(chuàng)建索引我們經(jīng)常使用書的作者進行查詢,所以需要針對作者(author)創(chuàng)建索引USEBookShopDbGO/*--檢查是否存在該索引(索引存放在系統(tǒng)表sysindexes中)---*/IFEXISTS(SELECT

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

--創(chuàng)建索引CREATENONCLUSTEREDINDEXIX_BookInfo_AuthorONBookInfo(author)

--創(chuàng)建索引之后查詢數(shù)據(jù)可以指定SQLServer查詢數(shù)據(jù)的方式SELECT*FROMBookInfoWITH(INDEX=IX_BookInfo_Author)WHEREAuthorLIKE'王%'創(chuàng)建索引的指導原則避免對經(jīng)常更新的表進行過多的索引,并且索引列要盡可能少使用多個索引可以提高更新少而數(shù)據(jù)量大的查詢的性能。大量索引可以提高不修改數(shù)據(jù)的查詢(例如SELECT語句)的性能,因為查詢優(yōu)化器有更多的索引可供選擇,從而可以確定最快的訪問方法經(jīng)常作為查詢條件的列適合創(chuàng)建索引經(jīng)常用于排序,分組的列適合創(chuàng)建索引經(jīng)常作為聯(lián)接條件的列適合創(chuàng)建索引表中包含很少數(shù)據(jù)行不適合創(chuàng)建索引(搜索索引所花的時間比搜索數(shù)據(jù)行花的時間還多)數(shù)據(jù)行重復項很多的列不適合做索引總結(jié)視圖是一種虛擬表,通常是作為執(zhí)行查詢的結(jié)果而創(chuàng)建的,視圖充當對查詢中指定表的篩選器。建

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論