第10講 索引與視圖_第1頁
第10講 索引與視圖_第2頁
第10講 索引與視圖_第3頁
第10講 索引與視圖_第4頁
第10講 索引與視圖_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1回顧回顧單表查詢:單表查詢:基本語法:基本語法:SELECTFROMWHERE函數(shù):函數(shù):Count(), AVG(), Year(), Len()排序:排序:Order by DESC重定向重定向: Into分組:分組:Group byHaving嵌套查詢:嵌套查詢:All , any , some , in連接查詢:連接查詢:INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN , CROSS JOIN2數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫原理與應(yīng)用第第10講講 索引與視圖索引與視圖3提綱提綱重點(diǎn)重點(diǎn)索引的分類、創(chuàng)建索引的方法索引的分類、創(chuàng)建索引的方法視圖的作用、創(chuàng)

2、建視圖的方法、利用視圖修改數(shù)據(jù)的方視圖的作用、創(chuàng)建視圖的方法、利用視圖修改數(shù)據(jù)的方法與限制。法與限制。難點(diǎn)難點(diǎn)對聚集索引和唯一索引的區(qū)分對聚集索引和唯一索引的區(qū)分在視圖中更新數(shù)據(jù)的限制在視圖中更新數(shù)據(jù)的限制41. 索引索引關(guān)鍵詞:為了提高對數(shù)據(jù)表中數(shù)據(jù)的關(guān)鍵詞:為了提高對數(shù)據(jù)表中數(shù)據(jù)的檢索檢索速度速度,基于某些,基于某些列列創(chuàng)建創(chuàng)建排序排序文件。提高了文件。提高了檢索速度,但會影響檢索速度,但會影響增、刪、改增、刪、改速度。速度。5索引的作用索引的作用索引是對數(shù)據(jù)庫表中索引是對數(shù)據(jù)庫表中一個或多個字段的值一個或多個字段的值進(jìn)行排序而創(chuàng)進(jìn)行排序而創(chuàng)建的一種分散存儲結(jié)構(gòu)。創(chuàng)建索引的作用在于建的一種

3、分散存儲結(jié)構(gòu)。創(chuàng)建索引的作用在于提高查提高查詢速度詢速度。為什么索引能提高查詢速度呢?為什么索引能提高查詢速度呢?索引中提供了順序,在已經(jīng)排好序的數(shù)據(jù)的數(shù)據(jù)集合中索引中提供了順序,在已經(jīng)排好序的數(shù)據(jù)的數(shù)據(jù)集合中查找數(shù)據(jù),可以使用查找數(shù)據(jù),可以使用二分法二分法,查詢的平均時間為,查詢的平均時間為log2n。而如果在沒有排序的數(shù)據(jù)中進(jìn)行查找,只能順序查找,而如果在沒有排序的數(shù)據(jù)中進(jìn)行查找,只能順序查找,平均效率為平均效率為n/2。索引(索引(1)6索引提高查詢速度的例子索引提高查詢速度的例子系部代碼系部代碼指針地址指針地址018022035044051067076083地址序號地址序號 系部代碼系

4、部代碼系部名稱系部名稱系主任系主任105社會科學(xué)部社會科學(xué)部劉克忠劉克忠202經(jīng)濟(jì)管理系經(jīng)濟(jì)管理系劉國峰劉國峰307建筑系建筑系王未起王未起404基礎(chǔ)科學(xué)部基礎(chǔ)科學(xué)部王彬王彬503傳播技術(shù)系傳播技術(shù)系田建國田建國608農(nóng)林系農(nóng)林系陳瑞修陳瑞修706機(jī)電工程系機(jī)電工程系王偉東王偉東801計(jì)算機(jī)系計(jì)算機(jī)系劉海軍劉海軍索引索引數(shù)據(jù)數(shù)據(jù)比如:要尋找比如:要尋找08號系部的信息,先在索引中用二分法找到號系部的信息,先在索引中用二分法找到08系的地系的地址,然后在數(shù)據(jù)中定位。址,然后在數(shù)據(jù)中定位。索引(索引(2)7以以employee表為例,對表為例,對employee_id建聚集索引前建聚集索引前后插入

5、記錄對比。后插入記錄對比。數(shù)據(jù)表創(chuàng)建之后,創(chuàng)建索引數(shù)據(jù)表創(chuàng)建之后,創(chuàng)建索引語法格式:語法格式:CREATE UNIQUECLUSTERED|NONCLUSTERED INDEX index_nameON table_name(column_nameASC|DESC,n)例例索引(索引(4)8索引的類型索引的類型依據(jù)索引對數(shù)據(jù)表中的記錄順序的影響依據(jù)索引對數(shù)據(jù)表中的記錄順序的影響,分為:,分為:聚集索引聚集索引(CLUSTERED),將數(shù)據(jù)行的鍵值在表內(nèi)排序,將數(shù)據(jù)行的鍵值在表內(nèi)排序并存儲對應(yīng)的數(shù)據(jù)記錄,使得數(shù)據(jù)表物理順序與索引并存儲對應(yīng)的數(shù)據(jù)記錄,使得數(shù)據(jù)表物理順序與索引順序完全一致。(順序完

6、全一致。(聚集索引中B樹的葉節(jié)點(diǎn)存放數(shù)據(jù)頁信息)一個表只能建一個聚集索引一個表只能建一個聚集索引。非聚集索引非聚集索引(NONCLUSTERED)。完全獨(dú)立于數(shù)據(jù)行的。完全獨(dú)立于數(shù)據(jù)行的結(jié)構(gòu),不改變數(shù)據(jù)的物理存儲順序,通過指向數(shù)據(jù)行結(jié)構(gòu),不改變數(shù)據(jù)的物理存儲順序,通過指向數(shù)據(jù)行的指針尋找數(shù)據(jù)。的指針尋找數(shù)據(jù)。(非聚集索引中B樹的葉節(jié)點(diǎn)存放非聚集索引的鍵值,每個鍵值項(xiàng)都有指針指向包含該鍵值的數(shù)據(jù)行)可以建多個非聚集索引可以建多個非聚集索引(最多最多249個)。個)。注:一個表中有聚集索引與非聚集索引,先建聚集索引。注:一個表中有聚集索引與非聚集索引,先建聚集索引。索引(索引(3)9依據(jù)對列或列的

7、組合的值的唯一性要求依據(jù)對列或列的組合的值的唯一性要求,分為:,分為:唯一索引唯一索引(UNIQUE):索引列索引列不能出現(xiàn)重復(fù)值。事不能出現(xiàn)重復(fù)值。事實(shí)上,唯一索引最常用在實(shí)上,唯一索引最常用在primary key(主鍵主鍵)字字段上。段上。非唯一索引:非唯一索引:默認(rèn)為非唯一索引。默認(rèn)為非唯一索引。復(fù)合索引:復(fù)合索引:一個索引可以依據(jù)一個字段來創(chuàng)建,一個索引可以依據(jù)一個字段來創(chuàng)建,稱為稱為單值索引單值索引。也可以基于多個字段來創(chuàng)建,稱。也可以基于多個字段來創(chuàng)建,稱之為之為復(fù)合索引復(fù)合索引。對于經(jīng)常放在一起用來做查詢條。對于經(jīng)常放在一起用來做查詢條件的列組合,使用復(fù)合索引。件的列組合,使用

8、復(fù)合索引。索引(索引(4)10注意注意主鍵索引主鍵索引是一種特殊的索引,當(dāng)給表定義了主鍵時,是一種特殊的索引,當(dāng)給表定義了主鍵時,將自動創(chuàng)建主鍵索引,主鍵索引將自動創(chuàng)建主鍵索引,主鍵索引一定是一定是唯一索引唯一索引,但但既可以是聚集索引,也可以是非聚集索引既可以是聚集索引,也可以是非聚集索引。復(fù)合索引復(fù)合索引同時也可以是唯一索引,即字段組合的值同時也可以是唯一索引,即字段組合的值不能重復(fù),但單獨(dú)字段值可重復(fù)。復(fù)合索引組合不能重復(fù),但單獨(dú)字段值可重復(fù)。復(fù)合索引組合字段有限制:在同一表中不多于字段有限制:在同一表中不多于16個字段的組合。個字段的組合。索引(索引(5)11注意:注意:是否建立索引由

9、用戶決定,是否使用索引及何時是否建立索引由用戶決定,是否使用索引及何時使用索引是由數(shù)據(jù)庫引擎中的查詢優(yōu)化器決定。使用索引是由數(shù)據(jù)庫引擎中的查詢優(yōu)化器決定。一般只在經(jīng)常用來檢索的字段上建立索引。一般只在經(jīng)常用來檢索的字段上建立索引。為每為每個字段都建立索引沒有必要個字段都建立索引沒有必要。因?yàn)樗饕陨硪?。因?yàn)樗饕陨硪残杈S護(hù),并占用一定的資源,索引會減慢需維護(hù),并占用一定的資源,索引會減慢INSERT、UPDATE和和DELETE語句的執(zhí)行速語句的執(zhí)行速度。度。索引(索引(6)12創(chuàng)建索引:創(chuàng)建索引:在創(chuàng)建數(shù)據(jù)表時創(chuàng)建索引。在創(chuàng)建數(shù)據(jù)表時創(chuàng)建索引。在數(shù)據(jù)表創(chuàng)建之后創(chuàng)建索引。在數(shù)據(jù)表創(chuàng)建之后創(chuàng)建索

10、引。以上兩種方法,都可以用管理平臺的圖形界面來實(shí)現(xiàn),以上兩種方法,都可以用管理平臺的圖形界面來實(shí)現(xiàn),也可以用也可以用SQL語句來實(shí)現(xiàn),這里只講述語句來實(shí)現(xiàn),這里只講述SQL語句。語句。查看索引查看索引用用SQL Server管理平臺查看修改索引管理平臺查看修改索引 使用系統(tǒng)存儲過程查看索引使用系統(tǒng)存儲過程查看索引語法格式:語法格式:sp_helpindex TableName索引(索引(8)-用用SQL Server管理平臺查看修改索引小課介紹管理平臺查看修改索引小課介紹 13課堂小練課堂小練在在employee表上創(chuàng)建唯一、聚集、復(fù)合索引(復(fù)合項(xiàng)為:表上創(chuàng)建唯一、聚集、復(fù)合索引(復(fù)合項(xiàng)為:e

11、mployee_id,wages),索引名為索引名為EDID。142. 視圖視圖關(guān)鍵詞:視圖是一個關(guān)鍵詞:視圖是一個虛表虛表,存儲的,存儲的是查詢邏輯而非數(shù)據(jù);可在視圖增、是查詢邏輯而非數(shù)據(jù);可在視圖增、刪、改數(shù)據(jù),但要受到限制。刪、改數(shù)據(jù),但要受到限制。15視圖的概念視圖的概念視圖是一個視圖是一個虛擬表虛擬表,相當(dāng)于一個,相當(dāng)于一個定制的查詢定制的查詢,用來查看,用來查看數(shù)據(jù),不存儲數(shù)據(jù),視圖中可進(jìn)行增刪改查數(shù)據(jù)操作。數(shù)據(jù),不存儲數(shù)據(jù),視圖中可進(jìn)行增刪改查數(shù)據(jù)操作。視圖的作用視圖的作用簡化操作。視圖被定義后,在以后的相同查詢時,簡化操作。視圖被定義后,在以后的相同查詢時,調(diào)用調(diào)用視圖視圖就可

12、以了,不必每次構(gòu)造查詢。就可以了,不必每次構(gòu)造查詢。提高數(shù)據(jù)操作安全性。允許用戶通過視圖訪問數(shù)據(jù),而提高數(shù)據(jù)操作安全性。允許用戶通過視圖訪問數(shù)據(jù),而不授予不授予用戶直接訪問基礎(chǔ)表的權(quán)限。用戶直接訪問基礎(chǔ)表的權(quán)限。 實(shí)現(xiàn)數(shù)據(jù)庫的邏輯獨(dú)立性,當(dāng)基礎(chǔ)表結(jié)構(gòu)發(fā)生改變時,實(shí)現(xiàn)數(shù)據(jù)庫的邏輯獨(dú)立性,當(dāng)基礎(chǔ)表結(jié)構(gòu)發(fā)生改變時,通過修改視圖即可保證應(yīng)用程序不做改變。通過修改視圖即可保證應(yīng)用程序不做改變。視圖的限制:視圖的限制:一個視圖最多只能有一個視圖最多只能有250列。列。在視圖可以進(jìn)行增,刪,改操作,但要受到一定的限制。在視圖可以進(jìn)行增,刪,改操作,但要受到一定的限制。視圖(視圖(1)1617命令格式命令格式

13、CREATE VIEW 視圖名視圖名 (列名列名,列名,列名)with encryption AS WITH CHECK OPTION說明說明視圖的的屬性以以式命名,性可缺省查詢詢結(jié)中的的屬名視圖的的屬性以以式命名,性可缺省查詢詢結(jié)中的的屬名 with encryption :對視圖加密對視圖加密,一旦加密不能解密一旦加密不能解密with check option: 當(dāng)對視圖進(jìn)行插入,更新時,要檢查新元組當(dāng)對視圖進(jìn)行插入,更新時,要檢查新元組是否滿足對應(yīng)查詢的條件是否滿足對應(yīng)查詢的條件例例 18通過視圖添加表數(shù)據(jù)通過視圖添加表數(shù)據(jù)語法格式:與向數(shù)據(jù)表中添加數(shù)據(jù)相同語法格式:與向數(shù)據(jù)表中添加數(shù)據(jù)

14、相同注意:如果視圖不包括基礎(chǔ)表的所有列,而未被包含的注意:如果視圖不包括基礎(chǔ)表的所有列,而未被包含的列又不允許為空,則不能添加數(shù)據(jù)。列又不允許為空,則不能添加數(shù)據(jù)。通過視圖刪除表數(shù)據(jù)通過視圖刪除表數(shù)據(jù)語法格式:同刪除表中的數(shù)據(jù)相同語法格式:同刪除表中的數(shù)據(jù)相同盡管視圖不一定包含基礎(chǔ)表的所有列,但可以通過視圖盡管視圖不一定包含基礎(chǔ)表的所有列,但可以通過視圖刪除基礎(chǔ)表的數(shù)據(jù)行。刪除基礎(chǔ)表的數(shù)據(jù)行。通過視圖修改表數(shù)據(jù)通過視圖修改表數(shù)據(jù)語法格式:與修改表的數(shù)據(jù)相同語法格式:與修改表的數(shù)據(jù)相同注意:注意:一次修改,只能涉及一個基礎(chǔ)表一次修改,只能涉及一個基礎(chǔ)表視圖(視圖(2)19總詢總詢索引索引是對數(shù)據(jù)

15、庫表中一個或多個字段的值進(jìn)行排序而創(chuàng)建的一是對數(shù)據(jù)庫表中一個或多個字段的值進(jìn)行排序而創(chuàng)建的一種分散存儲結(jié)構(gòu)。建立索引的主要目的是加速數(shù)據(jù)檢索和種分散存儲結(jié)構(gòu)。建立索引的主要目的是加速數(shù)據(jù)檢索和連接、優(yōu)化查詢、強(qiáng)制實(shí)行惟一性等操作。主要有連接、優(yōu)化查詢、強(qiáng)制實(shí)行惟一性等操作。主要有3種類型種類型的索引,即惟一性索引、主鍵索引和聚集索引。的索引,即惟一性索引、主鍵索引和聚集索引。在在SQL Server 2008中對索引的基本操作包括創(chuàng)建索引、查看中對索引的基本操作包括創(chuàng)建索引、查看索引、更改索引、刪除索引和全文索引,可以在企業(yè)管理索引、更改索引、刪除索引和全文索引,可以在企業(yè)管理器或通過器或通過

16、Transact-SQL語句實(shí)現(xiàn)索引操作。語句實(shí)現(xiàn)索引操作。視圖視圖是一種數(shù)據(jù)庫對象,是從一個或多個表或視圖中導(dǎo)出的虛是一種數(shù)據(jù)庫對象,是從一個或多個表或視圖中導(dǎo)出的虛擬表。擬表。 視圖的操作主要包括視圖的創(chuàng)建、修改、刪除和重命名等,其視圖的操作主要包括視圖的創(chuàng)建、修改、刪除和重命名等,其操作可以通過操作可以通過SQL Server企業(yè)管理器和企業(yè)管理器和Transact-SQL語句語句來實(shí)現(xiàn)。來實(shí)現(xiàn)。通過視圖可以完成某些和基礎(chǔ)表相同的一些數(shù)據(jù)操作,如數(shù)據(jù)通過視圖可以完成某些和基礎(chǔ)表相同的一些數(shù)據(jù)操作,如數(shù)據(jù)的檢索、添加、修改和刪除。的檢索、添加、修改和刪除。20課后練課后練在在goods表上

17、創(chuàng)建視圖,視圖名為:表上創(chuàng)建視圖,視圖名為:goods_view22,顯示顯示goods表中表中supplier_id=s001的所有記錄,的所有記錄,對對視圖視圖加密加密,且對且對查詢的條件查詢的條件增加檢查約束增加檢查約束。21大作業(yè)大作業(yè)222小課內(nèi)容小課內(nèi)容索引與視圖實(shí)驗(yàn)索引與視圖實(shí)驗(yàn)23回顧大課內(nèi)容,回顧大課內(nèi)容,20分鐘分鐘索引索引從存儲角度劃分:從存儲角度劃分:聚集索引聚集索引(CLUSTERED),非聚集索引,非聚集索引(NONCLUSTERED)從值的角度劃分:從值的角度劃分:唯一索引唯一索引(UNIQUE),非唯一索引。,非唯一索引。視圖視圖是虛擬表是虛擬表 with encryption :對視圖加密對視圖加密,一旦加密不能解密一旦加密不能解密with check option: 當(dāng)對視圖進(jìn)行插入,更新時,要檢查當(dāng)對視圖進(jìn)行插入,更新時,要檢查新元組是否滿足對應(yīng)查詢的條件新元組是否滿足對應(yīng)查詢的條件24請同學(xué)回答問題請同學(xué)回答問題問題問題1:索引的分類:

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論