SQL Sever實(shí)例教程(2019版) 課件 劉志成 第6、7章 視圖操作、索引操作_第1頁
SQL Sever實(shí)例教程(2019版) 課件 劉志成 第6、7章 視圖操作、索引操作_第2頁
SQL Sever實(shí)例教程(2019版) 課件 劉志成 第6、7章 視圖操作、索引操作_第3頁
SQL Sever實(shí)例教程(2019版) 課件 劉志成 第6、7章 視圖操作、索引操作_第4頁
SQL Sever實(shí)例教程(2019版) 課件 劉志成 第6、7章 視圖操作、索引操作_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

SQLServer實(shí)例教程(2019版)視圖操作第六章”十四五”職業(yè)教育國家規(guī)劃教材01視圖概述視圖概述01視圖和表一樣,也包括幾個被定義的數(shù)據(jù)列和多個數(shù)據(jù)行,但就本質(zhì)而言,這些數(shù)據(jù)列和數(shù)據(jù)行來源于視圖所引用的表,所以視圖不是真實(shí)存在的物理表,而是一張?zhí)摫?。視圖(索引視圖除外)所對應(yīng)的數(shù)據(jù)并不實(shí)際地以視圖結(jié)構(gòu)存儲在數(shù)據(jù)庫中,而是存儲在視圖所引用的表中。視圖一經(jīng)定義便存儲在數(shù)據(jù)庫中,與其相對應(yīng)的數(shù)據(jù)并沒有在數(shù)據(jù)庫中另外存儲一份,通過視圖看到的數(shù)據(jù)只是存放在基本表中的數(shù)據(jù)。對視圖的操作與對表的操作一樣,可以對其進(jìn)行查詢、修改(有一定的限制)和刪除。當(dāng)對視圖中的數(shù)據(jù)進(jìn)行修改時,相應(yīng)的基本表的數(shù)據(jù)也要發(fā)生變化,同時,如果基本表的數(shù)據(jù)發(fā)生變化,則這種變化也可以自動地反映到視圖中。視圖概述01視圖的主要優(yōu)點(diǎn):(1)視點(diǎn)集中、減少對象量。視圖讓用戶能夠著重于他們所需要的特定數(shù)據(jù)或所負(fù)責(zé)的特定業(yè)務(wù),如用戶可以選擇特定行或特定列,不需要的數(shù)據(jù)可以不出現(xiàn)在視圖中,增強(qiáng)了數(shù)據(jù)的安全性;而且視圖并不實(shí)際包含數(shù)據(jù),SQLServer2019只在數(shù)據(jù)庫中存儲視圖的定義。(2)從異構(gòu)源組織數(shù)據(jù)。可以在連接兩個或多個表的復(fù)雜查詢的基礎(chǔ)上創(chuàng)建視圖,這樣可以以單個表的形式顯示給用戶,即分區(qū)視圖。分區(qū)視圖可基于來自異構(gòu)源的數(shù)據(jù),如遠(yuǎn)程服務(wù)器,或來自不同數(shù)據(jù)庫中的表。(3)隱藏數(shù)據(jù)的復(fù)雜性,簡化操作。視圖向用戶隱藏了數(shù)據(jù)庫設(shè)計的復(fù)雜性,如果開發(fā)者改變數(shù)據(jù)庫設(shè)計,則不會影響到用戶與數(shù)據(jù)庫交互。另外,用戶可將經(jīng)常使用的連接查詢、嵌套查詢或合并查詢定義為視圖,這樣,用戶每次對特定的數(shù)據(jù)執(zhí)行進(jìn)一步操作時,不需指定所有條件和限定,因?yàn)橛脩糁恍璨樵円晥D,而不需再提交復(fù)雜的基礎(chǔ)查詢。02使用SSMS管理視圖使用SSMS管理視圖02創(chuàng)建視圖【任務(wù)1-1】在電子商城數(shù)據(jù)庫WebShop中創(chuàng)建以價格升序排列的“促銷”商品的視圖vw_SaleGoods。(1)啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】節(jié)點(diǎn)。(2)右擊【視圖】節(jié)點(diǎn),在彈出的快捷菜單中選擇【新建視圖】選項(xiàng),如圖6-3所示。使用SSMS管理視圖02創(chuàng)建視圖(3)打開“添加表”對話框,單擊要添加到新視圖中的表或視圖,然后單擊【添加】按鈕,完成表的添加,單擊【關(guān)閉】按鈕,如圖6-4所示。使用SSMS管理視圖02創(chuàng)建視圖(4)選擇添加到視圖的列、列的別名、指定篩選條件(這里為促銷商品)和排序方式(這里根據(jù)價格升序排列),如圖6-5所示。使用SSMS管理視圖02創(chuàng)建視圖(5)右擊創(chuàng)建的視圖區(qū)域,在彈出的快捷菜單中選擇【執(zhí)行SQL】選項(xiàng),如圖6-6所示??梢圆榭吹揭晥D對應(yīng)的結(jié)果集,如圖6-7所示。使用SSMS管理視圖02創(chuàng)建視圖(6)右擊視圖名稱,在彈出的快捷菜單中選擇【保存】選項(xiàng),如圖6-8所示。(7)打開“選擇名稱”對話框,輸入新視圖的名稱(這里為vw_SaleGoods),單擊【確定】按鈕保存視圖定義,如圖6-9所示。這樣就完成了視圖的定義。使用SSMS管理視圖02修改視圖(1)修改視圖定義。【任務(wù)1-2】將所創(chuàng)建的視圖vw_SaleGoods中的商品類別(t_ID)對應(yīng)的列去掉。①啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】節(jié)點(diǎn)、【視圖】節(jié)點(diǎn)。②右擊【dbo.vw_SaleGoods】節(jié)點(diǎn),在彈出的快捷菜單中選擇【設(shè)計】選項(xiàng),如圖6-10所示。使用SSMS管理視圖02修改視圖③進(jìn)入視圖的修改界面(如圖6-5所示),取消選中“t_ID”列,完成視圖的修改。④修改完成后,保存修改后的視圖定義。使用SSMS管理視圖02修改視圖(2)重命名視圖。【任務(wù)1-3】將所創(chuàng)建的視圖vw_SaleGoods的名稱修改為vw_HotSaleGoods。①啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】節(jié)點(diǎn)、【視圖】節(jié)點(diǎn)。②右擊【dbo.vw_SaleGoods】節(jié)點(diǎn),在彈出的快捷菜單中選擇【重命名】選項(xiàng),如圖6-10所示。或者在選定的視圖名稱上單擊,進(jìn)入視圖名稱編輯狀態(tài)。使用SSMS管理視圖02修改視圖③進(jìn)入編輯狀態(tài)后,在原視圖名的位置上輸入新的視圖名,完成視圖名稱的修改,如圖6-11所示。使用SSMS管理視圖02查看視圖(1)查看視圖屬性?!救蝿?wù)1-4】查看視圖vw_SaleGoods的基本信息。①啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】節(jié)點(diǎn)、【視圖】節(jié)點(diǎn)。②右擊【dbo.vw_SaleGoods】節(jié)點(diǎn),在彈出的快捷菜單中選擇【屬性】選項(xiàng),如圖6-10所示。使用SSMS管理視圖02查看視圖③打開“視圖屬性”對話框,可以查看視圖的常規(guī)、權(quán)限和擴(kuò)展屬性,如圖6-12所示。使用SSMS管理視圖02查看視圖(2)查看視圖依賴關(guān)系。視圖中的數(shù)據(jù)可以是一個表(或視圖)中的特定數(shù)據(jù),也可以是來自多個表(或視圖)中的特定數(shù)據(jù),因此視圖是依賴于表(或視圖)而存在的。同時,一個視圖也可以成為其他視圖所依賴的基礎(chǔ)?!救蝿?wù)1-5】查看視圖vw_SaleGoods的依賴關(guān)系。①啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】節(jié)點(diǎn)、【視圖】節(jié)點(diǎn)。②右擊【dbo.vw_SaleGoods】節(jié)點(diǎn),在彈出的快捷菜單中選擇【查看依賴關(guān)系】選項(xiàng),如圖6-10所示。使用SSMS管理視圖02查看視圖打開“對象依賴關(guān)系”對話框,在該對話框中顯示了視圖所依賴的表或視圖,也顯示了依賴于該視閣的其他視圖,如圖6-13所示。使用SSMS管理視圖02刪除視圖在創(chuàng)建視圖后,如果不再需要該視圖,或想清除視圖定義及與之相關(guān)聯(lián)的權(quán)限,可以刪除該視圖。刪除視圖后,基礎(chǔ)表和基礎(chǔ)視圖并不受到影響,但任何使用基于已刪除視圖的查詢都將失敗。【任務(wù)1-6】刪除所創(chuàng)建的視圖vw_SaleGoods。(1)啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】節(jié)點(diǎn)、【視圖】節(jié)點(diǎn)。(2)右擊【dbo.vw_SaleGoods】節(jié)點(diǎn),在彈出的快捷菜單中選擇【刪除】選項(xiàng),如圖6-10所示。使用SSMS管理視圖02刪除視圖(3)打開“刪除對象”對話框,單擊【確定】按鈕完成刪除,如圖6-14所示。03使用T-SQL管理視圖使用T-SQL管理視圖03創(chuàng)建視圖使用T-SOL命令CREATEVIEW可以創(chuàng)建視圖,其基本語句格式如下:使用T-SQL管理視圖03修改視圖(1)使用T-SQL修改視圖。使用T-SOL的命令A(yù)LTERVIEW可以修改視圖,基本語句格式如下:(2)使用sp_rename重命名視圖。使用系統(tǒng)存儲過程

sp_rename

可以重命名視圖,但不會刪除視圖,也不會刪除在該視圖上的權(quán)限。系統(tǒng)存儲過程sp_rename的基本語句格式如下:使用T-SQL管理視圖03查看視圖(1)查看視圖定義。使用系統(tǒng)存儲過程sp_help可以查看視圖的定義,基本語句格式如下:(2)查看視圖的文本。使用系統(tǒng)存儲過程sp_helptext可以查看視圖的文本,基本語句格式如下:使用T-SQL管理視圖03刪除視圖刪除視圖使用DROPVIEW命令,可以使用單個DROPVIEW命令刪除多個視圖,在DROPVIEW語句中,需刪除的視圖名之間以逗號隔開。DROPVIEW命令的基本語句格式如下:03使用視圖使用視圖04查看視圖數(shù)據(jù)【任務(wù)3-1】需要了解價格在2000元以上的促銷商品信息,為了簡化查詢操作,可以在視圖vw_SaleGoods中進(jìn)行查詢。運(yùn)行結(jié)果如圖6-20所示。使用視圖04查看視圖數(shù)據(jù)【任務(wù)3-2】需要統(tǒng)計每類商品的平均價格(顯示類別名和該類別的平均價格),為了簡化查詢操作,可以在視圖vw_TNameGoods(在【任務(wù)2-3】中已創(chuàng)建好)中進(jìn)行查詢。運(yùn)行結(jié)果如圖6-21所示。使用視圖04修改視圖數(shù)據(jù)當(dāng)向視圖中插入或更新數(shù)據(jù)時,實(shí)際上是對視圖所基于的表執(zhí)行數(shù)據(jù)的插入和更新。但是通過視圖插入、更新數(shù)據(jù)有一些限制。(1)在一個語句中,一次不能修改一個以上的視圖基表。例如,對于前面建立的視圖vw_AllOrders,它基于Orders、OrderDetails和Goods三個表,所以不能用一個INSERT語句或UPDATE語句插入或修改視圖vw_AllOrders中的所有列,但可以在多個語句中分別插入或修改該視圖所參照的基表的對應(yīng)列。(2)對視圖中所有列的修改必須遵守視圖基表中所定義的各種數(shù)據(jù)約束條件(如不能為空等)。(3)不允許對視圖中的計算列進(jìn)行修改,也不允許對視圖定義中包含聚合函數(shù)或GROUP

BY子句的視圖進(jìn)行插入或修改操作。使用視圖04修改視圖數(shù)據(jù)【任務(wù)3-3】通過視圖vw_Users向表Users中增加一個用戶。(1)建立視圖vw_Users。該視圖只是很簡單地將英文的列名換成中文的列名。(2)通過視圖vw_Users實(shí)現(xiàn)記錄的添加。該語句成功執(zhí)行后,在Users表中新增了一個名為“view”的管理員信息。使用視圖04友情提示1.視圖與查詢的比較視圖雖然是保存的SELECT查詢,但與普通查詢在使用上有一定的區(qū)別。(1)數(shù)據(jù)庫服務(wù)器在視圖保存后可以立即建立查詢計劃。但是對于查詢,數(shù)據(jù)庫服務(wù)器直到查詢實(shí)際運(yùn)行時才能建立查詢計劃,也就是說,普通查詢在用戶顯式請求結(jié)果集時建立查詢計劃。(2)可以加密視圖,但不能加密查詢。(3)可以為查詢創(chuàng)建參數(shù),但不能為視圖創(chuàng)建參數(shù)。使用視圖04友情提示1.視圖與查詢的比較(4)可以對任何查詢結(jié)果進(jìn)行排序,但是只有當(dāng)視圖包括TOP子句時才能排序視圖。(5)視圖可以建立索引,提高查詢速度。(6)視圖可以屏蔽真實(shí)的數(shù)據(jù)結(jié)構(gòu)和復(fù)雜的業(yè)務(wù)邏輯,簡化查詢。(7)視圖存儲為數(shù)據(jù)庫設(shè)計的一部分,而查詢則不是。(8)對視圖和查詢的結(jié)果集更新限制是不同的。使用視圖04友情提示2.視圖與基本表的比較視圖通常建立在基本表的基礎(chǔ)上,但與基本表相比,視圖有許多優(yōu)點(diǎn)。(1)視點(diǎn)集中。視圖的機(jī)制使用戶把注意力集中在所關(guān)心的數(shù)據(jù)上,從而使用戶眼中的數(shù)據(jù)結(jié)構(gòu)簡單而直截了當(dāng)。(2)簡化操作。視圖建立大大簡化了用戶的數(shù)據(jù)查詢操作,因其是把若干張表連接在一起的視圖,故向用戶隱藏了表與表之間的連接操作。(3)多角度。視圖機(jī)制使不同的用戶從多角度“看待”同一數(shù)據(jù)。當(dāng)許多不同種類的用戶使用同一個集成數(shù)據(jù)庫時,這種靈活性顯然很重要。使用視圖04友情提示2.視圖與基本表的比較(4)安全。針對不同用戶可以定義不同的視圖,使機(jī)密數(shù)據(jù)不再出現(xiàn)在不應(yīng)該看到這些數(shù)據(jù)的用戶視圖上,顯然這就提供了對機(jī)密數(shù)據(jù)的保護(hù)。(5)邏輯上的數(shù)據(jù)獨(dú)立。視圖可避免數(shù)據(jù)庫中表的結(jié)構(gòu)變化對用戶程序造成的不良影響。例如,當(dāng)一個大表被“垂直”地分成多個表時,只要重新定義視圖就可以保持用戶原來的關(guān)系,使用的外模式不變,因此不必修改用戶程序,原來的應(yīng)用程序仍能通過視圖重載數(shù)據(jù)。當(dāng)然,視圖只能在一定程度上提供數(shù)據(jù)的邏輯獨(dú)立,修改數(shù)據(jù)的語句仍會因基本表的結(jié)構(gòu)改變而受到影響。使用視圖04友情提示3.使用視圖定制安全策略借助于視圖可以改善數(shù)據(jù)的安全性,視圖的安全性可以讓特定的用戶查看特定的數(shù)據(jù),也可以防止未授權(quán)用戶查看特定的行或列。前者可以結(jié)合第11章的數(shù)據(jù)庫安全控制技術(shù)將視圖的操作權(quán)限賦予特定的用戶。而想要限制用戶只能看到表中特定行的方法如下:(1)在表中增加一個標(biāo)志用戶名的列;(2)建立視圖,保證用戶只能看到標(biāo)有自己用戶名的行;(3)把視圖授權(quán)給其他用戶。感謝觀看,再見!SQLServer實(shí)例教程(2019版)”十四五”職業(yè)教育國家規(guī)劃教材SQLServer實(shí)例教程(2019版)索引操作第七章”十四五”職業(yè)教育國家規(guī)劃教材01概述概述01索引概念我們都有過查字典的經(jīng)歷,在查找一個生字時,首先會根據(jù)拼音或部首按照規(guī)定的查找方法到目錄中找到對應(yīng)漢字的所在頁碼,再翻閱到指定的頁碼找到要查找的生字。與書中的目錄一樣,數(shù)據(jù)庫中的索引使用戶可以快速找到表或索引視圖中的特定信息。索引包含從表或視圖中一個或多個列生成的鍵,以及映射到指定數(shù)據(jù)的存儲位置的指針。通過創(chuàng)建設(shè)計良好的索引,可以顯著提高數(shù)據(jù)庫查詢和應(yīng)用程序的性能。索引可以減少為返回查詢結(jié)果集而必須讀取的數(shù)據(jù)量。索引還可以強(qiáng)制表中的行具有唯一性,從而確保表的數(shù)據(jù)完整性。索引是對數(shù)據(jù)庫表中一個或多個列的值進(jìn)行排序的結(jié)構(gòu)。不同的索引對應(yīng)不同的排序方法,就像查字典時如果使用拼音法,則按漢字的拼音進(jìn)行排序;如果使用部首法,則按漢字的部首進(jìn)行排序一樣。概述01索引概念通常情況下,只有當(dāng)經(jīng)常查詢索引列中的數(shù)據(jù)時,才需要在表上創(chuàng)建索引。索引將占用磁盤空間,并且降低添加、刪除和更新行的速度。但在多數(shù)情況下,索引所帶來的數(shù)據(jù)檢索速度的優(yōu)勢大大超過它的不足。然而,如果應(yīng)用程序非常頻繁地更新數(shù)據(jù),或者磁盤空間有限,那么最好限制索引的數(shù)量。索引是一個單獨(dú)的、物理的數(shù)據(jù)結(jié)構(gòu),這個數(shù)據(jù)結(jié)構(gòu)中包括表中的一列或若千列的值及相應(yīng)的指向表中的物理標(biāo)識等值的數(shù)據(jù)頁的邏輯指針的集合。索引提供了數(shù)據(jù)庫中編排表中數(shù)據(jù)的內(nèi)部方法。索引依賴于數(shù)據(jù)庫的表,作為表的一個組成部分,一旦創(chuàng)建,就由數(shù)據(jù)庫系統(tǒng)自身進(jìn)行維護(hù)。概述01索引概念一個表的存儲是由兩部分組成的,一部分用來存放表的數(shù)據(jù)頁面,另一部分用來存放索引頁面,索引就存放在索引頁面上。通常,索引頁面相對于數(shù)據(jù)頁面來說小得多。當(dāng)進(jìn)行數(shù)據(jù)檢索時,系統(tǒng)先搜索索引頁面,從中找到所需數(shù)據(jù)的指針,再直接通過指針從數(shù)據(jù)頁面中讀取數(shù)據(jù)。從某種程度上可以把數(shù)據(jù)庫看作一本書,把索引看作書的目錄,通過目錄查找書中的信息,顯然比沒有使用目錄更方便、快捷。概述01索引類型1.聚集索引聚集索引對表的物理數(shù)據(jù)頁中的數(shù)據(jù)按列進(jìn)行排序,然后重新存儲到磁盤上,即聚集索引與數(shù)據(jù)是混為一體的。由于聚集索引對表中的數(shù)據(jù)一一進(jìn)行了排序,因此用聚集索引查找數(shù)據(jù)很快。但由于聚集索引將表的所有數(shù)據(jù)完全重新排列了,它所需的空間也特別大,大概相當(dāng)于表中數(shù)據(jù)所占空間的120%。表的數(shù)據(jù)行只能以一種排序方式存儲在磁盤上,所以一個表只能有一個聚集索引。單個分區(qū)中的聚集索引結(jié)構(gòu)如圖7-3所示。概述01索引類型2.非聚集索引非聚集索引具有與表的數(shù)據(jù)完全分離的結(jié)構(gòu),使用非聚集索引不用將物理數(shù)據(jù)頁中的數(shù)據(jù)按列排序,而是存儲索引行,每個索引行均包含非聚集索引鍵值和一個或多個指向包含該值的數(shù)據(jù)行的行定位器。如果表有聚集索引,行定位器就是該行的聚集索引鍵值;如果表沒有聚集索引,行定位器就是行的磁盤地址。SQLServer在檢索數(shù)據(jù)時,先對非聚集索引進(jìn)行查找,然后通過相應(yīng)的行定位器從表中找到對應(yīng)的數(shù)據(jù)。單個分區(qū)中的非聚集索引結(jié)構(gòu)如圖7-5所示。概述01索引類型3.唯一索引唯一索引不允許兩行具有相同的索引值。如果現(xiàn)有數(shù)據(jù)中存在重復(fù)的鍵值,則大多數(shù)數(shù)據(jù)庫不允許將新創(chuàng)建的唯一索引與表一起保存。當(dāng)新數(shù)據(jù)使表中的鍵值重復(fù)時,數(shù)據(jù)庫也拒絕接收此數(shù)據(jù)。例如,如果在Goods表中的商品名稱(g_Name)列上創(chuàng)建了唯一索引,則所有商品名稱都不能相同。唯一索引既可以是聚集索引,也可以是非聚集索引。概述01索引類型4.其他索引1)包含列索引包含列索引是一種非聚集索引,它擴(kuò)展后不僅包含鍵列,還包含非鍵列。2)索引視圖索引視圖是被具體化了的視圖,即對視圖定義已經(jīng)進(jìn)行了計算并存儲??梢詾橐晥D創(chuàng)建索引,即對視圖創(chuàng)建一個唯一的聚集索引。索引視圖可以顯著提高某些類型查詢的性能,特別適合聚合許多行的查詢,但不太適于經(jīng)常更新的基本數(shù)據(jù)集。概述01索引類型4.其他索引3)全文索引全文索引是一種特殊類型的基于標(biāo)記的功能性索引,由SQLServer全文引擎生成和維護(hù),用于幫助用戶在字符串?dāng)?shù)據(jù)中搜索復(fù)雜的詞。4)空間索引利用空間索引,可以更高效地對geometry數(shù)據(jù)類型列中的空間對象(空間數(shù)據(jù))執(zhí)行某些操作??臻g索引可減少需要應(yīng)用開銷相對較大的空間操作的對象數(shù)。02使用SSMS管理索引使用SSMS管理索引02創(chuàng)建索引【任務(wù)2-1】使用SQLServerManagementStudio在Goods表上創(chuàng)建基于g_Name的索引。(1)啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】節(jié)點(diǎn)、【Goods】表節(jié)點(diǎn)。(2)右擊【索引】節(jié)點(diǎn),在彈出的快捷菜單中選擇【新建索引】選項(xiàng),選擇索引類型為【非聚集索引】,如圖7-6所示。使用SSMS管理索引02創(chuàng)建索引(3)打開“新建索引”對話框,輸入索引的名稱(本例為idx_GName),如圖7-7所示。使用SSMS管理索引02創(chuàng)建索引(4)單擊【添加】按鈕,打開“選擇列”對話框,選擇需要創(chuàng)建索引的列,如圖7-8所示。(5)設(shè)置好索引的屬性后,單擊【確定】按鈕,完成索引的創(chuàng)建。使用SSMS管理索引02查看和刪除索引(1)查看索引?!救蝿?wù)2-2】使用SQLServerManagementStudio查看所創(chuàng)建的索引idx_GName。①啟動SQLServerManagementStudio,在“對象資源管理器”中依次展開【數(shù)據(jù)庫】節(jié)點(diǎn)、【W(wǎng)ebShop】數(shù)據(jù)庫節(jié)點(diǎn)、【Goods】表節(jié)點(diǎn)、【索引】節(jié)點(diǎn)。②右擊【idxGName】,在彈出的快捷菜單中選擇【屬性】選項(xiàng),如圖7-9所示。③在屬性查看窗口,可以查看指定索引的屬性,同時也可以進(jìn)行相關(guān)的修改。使用SSMS管理索引02查看和刪除索引(2)重命名索引。①在如圖7-9所示的指定索引的右鍵快捷菜單中選擇【重命名】選項(xiàng),或在選定的索引名上單擊,進(jìn)入編輯狀態(tài)。②輸入新的索引名稱,完成重命名。(3)刪除索引。右擊【idx_GName】,在如圖7-9所示的右鍵快捷菜單中選擇【刪除】選項(xiàng)。打開“刪除對象”對話框,單擊【刪除】按鈕即可刪除指定索引。02使用T-SQL管理索引使用T-SQL管理索引03創(chuàng)建索引使用T-SOL語句CREATEINDEX命令可以建立索引,其基本語句格式如下:使用T-SQL管理索引03創(chuàng)建索引提示:索引名必須符合標(biāo)識符規(guī)則。UNIQUE:表示創(chuàng)建一個唯一索引。CLUSTERED:指明創(chuàng)建的索引為聚集索引。NONCLUSTERED:指明創(chuàng)建的索引為非聚集索引。ASC|DESC:指定特定的索引列的排序方式,默認(rèn)值是升序(ASC)。可以使用CREATETABLE或ALTERTABLE在創(chuàng)建或修改表時創(chuàng)建索引。創(chuàng)建索引語句的詳細(xì)用法請參閱SQLServer聯(lián)機(jī)幫助。使用T-SQL管理索引03查看和刪除索引(1)查看索引。利用系統(tǒng)存儲過程sp_helpindex可以返回表中的所有索引信息,基本語句格式如下:其中,[@objname=]'name’子句用來指定當(dāng)前數(shù)據(jù)庫中表的名稱。(2)刪除索引。使用T-SQL語句DROPINDEX命令可以刪除一個或多個當(dāng)前數(shù)據(jù)庫中的索引,基本語句格式如下:使用T-SQL管理索引03索引的維護(hù)(1)DBCCSHOWCONTIG語句的使用。當(dāng)在表中頻繁進(jìn)行插入、更新和刪除操作時,表中會產(chǎn)生碎片,頁的順序也會被打亂,從而引起整個查詢性能下降,使用DBCCSHOWCONTIG命令可以掃描指定的表的碎片并用于確定該表或索引頁是否嚴(yán)重連續(xù),顯示指定的表的數(shù)據(jù)和索引的碎片信息。DBCCsHOwCONTIG的基本語句格式如下:使用T-SQL管理索引03索引的維護(hù)(2)DBCCDBREINDEX語句的使用。當(dāng)數(shù)據(jù)庫中的索引被損壞時,使用DBCCDBREINDEX語句可以重建表的一個或多個索引。重建索引的基本語句格式如下:使用T-SQL管理索引03索引的維護(hù)(3)UPDATESTATISTICS語句的使用。當(dāng)為表創(chuàng)建索引時,SQLServer將生成有關(guān)該索引的可用性的概要信息,并將這些信息放在分布頁上。這些信息將幫助SQLServer快速決定在執(zhí)行指定查詢時是否使用該索引。當(dāng)表中的數(shù)據(jù)發(fā)生變化時,SQLServer系統(tǒng)會周期性地修改統(tǒng)計信息,但當(dāng)表中的數(shù)據(jù)發(fā)生變化時,系統(tǒng)不一定馬上更新統(tǒng)計信息。通過執(zhí)行UPDATESTATTSTICS命令,可以更新索引的分布統(tǒng)計頁,使得索引的統(tǒng)計信息是最新的。為確保SQLServer具有良好的查詢性能,SQLServer的索引需要進(jìn)行日常維護(hù)。影響性能的一個很重要的維護(hù)工作是更新統(tǒng)計數(shù)字,這個命令將在很大程度上影響SQLServer在執(zhí)行查詢時選擇使用哪一個索引。UPDATESTATISTICS的基本語句格式如下:使用T-SQL管理索引03索引選項(xiàng)04全文索引全文索引04全文索引的概述全文索引包含在全文目錄中。每個數(shù)據(jù)庫可以包含一個或多個全文目錄。一個目錄不能屬于多個數(shù)據(jù)庫,而每個目錄可以包含一個或多個表的全文索引。一個表只能有一個全文索引,因此每個有全文索引的表只屬于一個全文目錄。全文目錄和索引不存儲在它們所屬的數(shù)據(jù)庫中。目錄和索引由Microsoft搜索服務(wù)分開管理。全文索引必須在基表上定義,而不能在視圖、系統(tǒng)表或臨時表上定義。全文索引的定義包括以下兩點(diǎn)。(1)能唯一標(biāo)識表中各行的列(主鍵或候選鍵),而且不允許空值。(2)索引所覆蓋的一個或多個字符串列。全文索引04全文索引的概述全文索引由鍵值填充。每個鍵的項(xiàng)提供與該鍵相關(guān)聯(lián)的重要詞、它們所在的列和它們在列中的位置等有關(guān)信息。普通的SQL索引與全文索引的比較如表7-3所示。全文索引04使用“全文索引向?qū)А薄救蝿?wù)4-1】在SQLServerManagementStudio中利用“全文索引向?qū)А痹贑ustomers表上建立基于c_Name列的全文索引。(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

提交評論