




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第9 9章章 視圖與索引視圖與索引 在對數(shù)據(jù)庫進行操作時,用戶總是希望能夠快速并準在對數(shù)據(jù)庫進行操作時,用戶總是希望能夠快速并準 確得到所要求的數(shù)據(jù),而適當使用視圖和索引可以提高數(shù)確得到所要求的數(shù)據(jù),而適當使用視圖和索引可以提高數(shù) 據(jù)存取的性能及操作速度,加快查詢數(shù)據(jù)的效率。據(jù)存取的性能及操作速度,加快查詢數(shù)據(jù)的效率。 本章將詳細介紹視圖和索引的概念,以及創(chuàng)建和管理本章將詳細介紹視圖和索引的概念,以及創(chuàng)建和管理 索引和視圖的方法。索引和視圖的方法。 9.1 9.1 視圖的基礎(chǔ)知識視圖的基礎(chǔ)知識 視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表 一樣
2、,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。視圖實際上一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。視圖實際上 就是給查詢語句指定一個名字,將查詢語句定義為一個獨立就是給查詢語句指定一個名字,將查詢語句定義為一個獨立 的對象保存。的對象保存。 9.1.1 9.1.1 視圖的概念視圖的概念 視圖是從一個或多個基本表中導(dǎo)出的表,其結(jié)構(gòu)是建立在對表的查視圖是從一個或多個基本表中導(dǎo)出的表,其結(jié)構(gòu)是建立在對表的查 詢基礎(chǔ)上的,但從本質(zhì)上來說,視圖不是真實存在的表,而是一張?zhí)摂M詢基礎(chǔ)上的,但從本質(zhì)上來說,視圖不是真實存在的表,而是一張?zhí)摂M 表,視圖所對應(yīng)的數(shù)據(jù)并不實際地存儲在數(shù)據(jù)庫中,而是存儲在視圖所表,視圖所對應(yīng)
3、的數(shù)據(jù)并不實際地存儲在數(shù)據(jù)庫中,而是存儲在視圖所 引用的基本表中。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且引用的基本表中。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且 在引用視圖時動態(tài)生成??梢赃@樣給視圖下一個定義:在引用視圖時動態(tài)生成??梢赃@樣給視圖下一個定義: 視圖是基于一個或多個數(shù)據(jù)表的動態(tài)數(shù)據(jù)集合,是一個邏輯上的虛視圖是基于一個或多個數(shù)據(jù)表的動態(tài)數(shù)據(jù)集合,是一個邏輯上的虛 擬數(shù)據(jù)表。擬數(shù)據(jù)表。 視圖被定義后便存儲在數(shù)據(jù)庫中,對視圖的操作與對表的操作一樣視圖被定義后便存儲在數(shù)據(jù)庫中,對視圖的操作與對表的操作一樣 ,可以對其進行查詢、修改和刪除,并且可以在視圖的基礎(chǔ)上再定義視,可以
4、對其進行查詢、修改和刪除,并且可以在視圖的基礎(chǔ)上再定義視 圖。圖。 對其中所引用的基礎(chǔ)表來說,視圖的作用類似于篩選。定義視圖的對其中所引用的基礎(chǔ)表來說,視圖的作用類似于篩選。定義視圖的 篩選可以來自當前或其他數(shù)據(jù)庫的一個或多個表,或者其他視圖。篩選可以來自當前或其他數(shù)據(jù)庫的一個或多個表,或者其他視圖。 9.1.2 9.1.2 視圖的作用視圖的作用 使用視圖主要有以下幾個方面的作用:使用視圖主要有以下幾個方面的作用: 1. 1. 簡化用戶操作簡化用戶操作 視圖可以簡化用戶對數(shù)據(jù)的理解,可能有些使用數(shù)據(jù)庫的用戶不能熟視圖可以簡化用戶對數(shù)據(jù)的理解,可能有些使用數(shù)據(jù)庫的用戶不能熟 練掌握數(shù)據(jù)庫的查詢操
5、作,尤其是多表的連接查詢,那么可以把經(jīng)常要練掌握數(shù)據(jù)庫的查詢操作,尤其是多表的連接查詢,那么可以把經(jīng)常要 使用的查詢定義為視圖,使他們在不需要太多數(shù)據(jù)庫知識的情況下可以使用的查詢定義為視圖,使他們在不需要太多數(shù)據(jù)庫知識的情況下可以 按自己的習慣簡單方便的輸入、查看和修改刪除數(shù)據(jù)。這樣,也可以簡按自己的習慣簡單方便的輸入、查看和修改刪除數(shù)據(jù)。這樣,也可以簡 化他們的操作?;麄兊牟僮鳌?2. 2. 簡化用戶權(quán)限管理簡化用戶權(quán)限管理 視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集。因視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集。因 此,當不同水平的用戶共用同一個數(shù)據(jù)庫時,為不
6、同用戶創(chuàng)建不同視圖,此,當不同水平的用戶共用同一個數(shù)據(jù)庫時,為不同用戶創(chuàng)建不同視圖, 只授予使用視圖的權(quán)限而不允許訪問表,這樣就不必在數(shù)據(jù)表中針對某只授予使用視圖的權(quán)限而不允許訪問表,這樣就不必在數(shù)據(jù)表中針對某 些用戶對某些字段設(shè)置不同權(quán)限了。些用戶對某些字段設(shè)置不同權(quán)限了。 3. 3. 安全保護功能安全保護功能 視圖用戶只能查看和修改他們所能看到的數(shù)據(jù),其它的表既不可見也視圖用戶只能查看和修改他們所能看到的數(shù)據(jù),其它的表既不可見也 不可訪問。可以像使用表一樣對視圖授予或者撤銷訪問權(quán)限,從而在限不可訪問??梢韵袷褂帽硪粯訉σ晥D授予或者撤銷訪問權(quán)限,從而在限 制表用戶的基礎(chǔ)上進一步限制視圖用戶,
7、從而提供了對數(shù)據(jù)的安全保護制表用戶的基礎(chǔ)上進一步限制視圖用戶,從而提供了對數(shù)據(jù)的安全保護 功能。功能。 4. 4. 重新組織數(shù)據(jù)重新組織數(shù)據(jù) 使用視圖可以重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中,可以將多個使用視圖可以重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中,可以將多個 物理數(shù)據(jù)庫抽象為一個邏輯數(shù)據(jù)庫。物理數(shù)據(jù)庫抽象為一個邏輯數(shù)據(jù)庫。 9.1.3 9.1.3 視圖的類型視圖的類型 SQL Server2008SQL Server2008中,視圖可以分為標準視圖、索引視圖和分區(qū)視圖。中,視圖可以分為標準視圖、索引視圖和分區(qū)視圖。 1. 1. 標準視圖標準視圖 標準視圖組合了一個或多個表中的數(shù)據(jù),可以獲得
8、使用視圖的大多數(shù)標準視圖組合了一個或多個表中的數(shù)據(jù),可以獲得使用視圖的大多數(shù) 好處,可以實現(xiàn)對數(shù)據(jù)庫的查詢、修改和刪除等基本操作。好處,可以實現(xiàn)對數(shù)據(jù)庫的查詢、修改和刪除等基本操作。 2. 2. 索引視圖索引視圖 索引視圖是被具體化了的視圖,它已經(jīng)過計算并存儲。可以為視圖創(chuàng)索引視圖是被具體化了的視圖,它已經(jīng)過計算并存儲??梢詾橐晥D創(chuàng) 建索引,即對視圖創(chuàng)建一個唯一的聚集索引。索引視圖可以顯著提高某建索引,即對視圖創(chuàng)建一個唯一的聚集索引。索引視圖可以顯著提高某 些類型查詢的性能。索引視圖尤其適于聚合許多行的查詢。但不太適合些類型查詢的性能。索引視圖尤其適于聚合許多行的查詢。但不太適合 于經(jīng)常更新的
9、基本數(shù)據(jù)集。于經(jīng)常更新的基本數(shù)據(jù)集。 3. 3. 分區(qū)視圖分區(qū)視圖 分區(qū)視圖在一臺或多臺服務(wù)器間水平連接一組成員表中的分區(qū)數(shù)據(jù)分區(qū)視圖在一臺或多臺服務(wù)器間水平連接一組成員表中的分區(qū)數(shù)據(jù) 這樣,數(shù)據(jù)看上去如同來自于一個表。這樣,數(shù)據(jù)看上去如同來自于一個表。 9.2 9.2 創(chuàng)建視圖創(chuàng)建視圖 SQL Server SQL Server提供兩種方法創(chuàng)建視圖:一種是使用提供兩種方法創(chuàng)建視圖:一種是使用SQLSQL Server Management Studio Server Management Studio工具創(chuàng)建視圖;一種使用工具創(chuàng)建視圖;一種使用 Transact-SQLTransact-SQ
10、L語句中的語句中的CREAT VIEWCREAT VIEW修改視圖。修改視圖。 9.2.1 9.2.1 使用使用SQL Server Management StudioSQL Server Management Studio工具創(chuàng)建視圖工具創(chuàng)建視圖 在在SQL Server Management StudioSQL Server Management Studio中創(chuàng)建視圖簡單直觀且方便,具中創(chuàng)建視圖簡單直觀且方便,具 體操作步驟如下:體操作步驟如下: 1) 1) 打開打開“SQL Server Management Studio”SQL Server Management Studio”窗口
11、,在左邊的窗口,在左邊的“對象資源對象資源 管理管理 器器”中中“數(shù)據(jù)庫數(shù)據(jù)庫”選項,展開要建立視圖的具體數(shù)據(jù)庫,然后鼠標右鍵單選項,展開要建立視圖的具體數(shù)據(jù)庫,然后鼠標右鍵單 擊擊 其下的其下的“視圖視圖”對象,在彈出的菜單中選擇對象,在彈出的菜單中選擇“新建視圖新建視圖”項。項。 2) 2) 如圖如圖9-19-1所示,在打開的所示,在打開的“添加表添加表”對話框中,在對話框中,在“表表”選項卡中選中選項卡中選中 創(chuàng)建創(chuàng)建 視圖的表,可以用視圖的表,可以用CtrlCtrl鍵和鍵和ShiftShift鍵配合鼠標以選擇多張表,單擊按鈕,鍵配合鼠標以選擇多張表,單擊按鈕, 然后單擊按鈕關(guān)閉該對話框
12、。然后單擊按鈕關(guān)閉該對話框。 3) 3) 此時進入到視圖的設(shè)計窗口,如圖此時進入到視圖的設(shè)計窗口,如圖9-29-2所示,窗口有四個子窗口,工具所示,窗口有四個子窗口,工具 欄中圖標分別控制這四個窗口的顯示。第一個子窗口是欄中圖標分別控制這四個窗口的顯示。第一個子窗口是“關(guān)系圖窗格關(guān)系圖窗格”,以,以 圖形的方式顯示添加的表結(jié)構(gòu),如果添加了多張表,則表與表之間的關(guān)系圖形的方式顯示添加的表結(jié)構(gòu),如果添加了多張表,則表與表之間的關(guān)系 也會顯示,在這個窗口中,用戶可以選擇列。第二個窗口是也會顯示,在這個窗口中,用戶可以選擇列。第二個窗口是“條件窗格條件窗格”, 顯示用戶所選擇的列,并設(shè)置列的屬性,自動
13、生成且可修改。第三個窗口顯示用戶所選擇的列,并設(shè)置列的屬性,自動生成且可修改。第三個窗口 是是“SQLSQL窗格窗格”,顯示用戶設(shè)置視圖的,顯示用戶設(shè)置視圖的Transact-SQLTransact-SQL語句,自動生成且可修語句,自動生成且可修 改。改。 第四個窗口是第四個窗口是“結(jié)果窗格結(jié)果窗格”,用來顯示視圖的執(zhí)行結(jié)果。,用來顯示視圖的執(zhí)行結(jié)果。 4) 4) 如果想繼續(xù)添加表創(chuàng)建視圖,可以右鍵單擊第一個窗口中,在彈出的如果想繼續(xù)添加表創(chuàng)建視圖,可以右鍵單擊第一個窗口中,在彈出的 快捷菜單中選擇快捷菜單中選擇“添加表添加表”?;蛘卟幌胗锰砑拥哪硰埍恚梢杂益I單擊要。或者不想用添加的某張表,
14、可以右鍵單擊要 刪除的表,在彈出的快捷菜單中選擇刪除的表,在彈出的快捷菜單中選擇“刪除刪除”將表移除。將表移除。 5) 5) 單擊第一個窗口中表結(jié)構(gòu)字段名前的復(fù)選框,為創(chuàng)建的視圖添加或刪單擊第一個窗口中表結(jié)構(gòu)字段名前的復(fù)選框,為創(chuàng)建的視圖添加或刪 除列,可以看到第二和第三個窗口中內(nèi)容有相應(yīng)的變化,在第二個窗口除列,可以看到第二和第三個窗口中內(nèi)容有相應(yīng)的變化,在第二個窗口 中還可以修改某些列的屬性,如列別名、排序方式和順序、一些約束等中還可以修改某些列的屬性,如列別名、排序方式和順序、一些約束等 ,第三個窗格中的,第三個窗格中的SQLSQL語句有相應(yīng)變化。語句有相應(yīng)變化。 6) 6) 在創(chuàng)建的視
15、圖中添加好列和列的屬性之后,單擊執(zhí)行在創(chuàng)建的視圖中添加好列和列的屬性之后,單擊執(zhí)行SQLSQL語句創(chuàng)建視語句創(chuàng)建視 圖。這時在第四個窗口中會看到查詢語句執(zhí)行的結(jié)果。如圖圖。這時在第四個窗口中會看到查詢語句執(zhí)行的結(jié)果。如圖9-39-3所示。所示。 7) 7) 單擊保存按鈕,在彈出的圖單擊保存按鈕,在彈出的圖9-49-4的選擇名稱對話框中輸入視圖的名字,的選擇名稱對話框中輸入視圖的名字, 然后單擊然后單擊“確定確定”,即完成了視圖的創(chuàng)建操作。這時,刷新視圖文件夾,即完成了視圖的創(chuàng)建操作。這時,刷新視圖文件夾, 可以看到新建的視圖??梢钥吹叫陆ǖ囊晥D。 9.2.2 9.2.2 使用使用Transac
16、t-SQLTransact-SQL語句創(chuàng)建視圖語句創(chuàng)建視圖 下面介紹使用下面介紹使用CREATE VIEWCREATE VIEW語句創(chuàng)建視圖的方法,其語法形式如下:語句創(chuàng)建視圖的方法,其語法形式如下: CREATE VIEW schema_name view_name ( column CREATE VIEW schema_name view_name ( column ,n ) n ) WITH ,n WITH ,n AS select_statement AS select_statement WITH CHECK OPTION WITH CHECK OPTION 其中:其中: schem
17、a_nameschema_name:視圖所屬框架的名稱。:視圖所屬框架的名稱。 view_nameview_name:視圖的名稱。視圖名稱必須符合標識符的命名規(guī)則。:視圖的名稱。視圖名稱必須符合標識符的命名規(guī)則。 columncolumn:視圖中的列使用的名稱。如果未指定:視圖中的列使用的名稱。如果未指定columncolumn,則視圖列將獲得與,則視圖列將獲得與 SELECTSELECT語句中的列相同的名稱。語句中的列相同的名稱。 select_statementselect_statement:定義視圖的:定義視圖的SELECTSELECT語句。該語句可以使用多個表和其語句。該語句可以使用
18、多個表和其 他視圖。需要相應(yīng)的權(quán)限才能在已創(chuàng)建視圖的他視圖。需要相應(yīng)的權(quán)限才能在已創(chuàng)建視圖的SELECTSELECT子句引用的對象中選子句引用的對象中選 擇。擇。 WITH CHECK OPTIONWITH CHECK OPTION:強制針對視圖執(zhí)行的所有數(shù)據(jù)修改語句都必須符合:強制針對視圖執(zhí)行的所有數(shù)據(jù)修改語句都必須符合 在在select_statementselect_statement中設(shè)置的條件。通過視圖修改行時,中設(shè)置的條件。通過視圖修改行時,WITH CHECK WITH CHECK OPTION OPTION可確保提交修改后,仍可通過視圖看到數(shù)據(jù)??纱_保提交修改后,仍可通過視圖看
19、到數(shù)據(jù)。 包括:包括:ENCRYPTIONENCRYPTION,對,對CREATE VIEWCREATE VIEW語句文本的項進行語句文本的項進行 加密;加密;SCHEMABIONDINGSCHEMABIONDING,將視圖綁定到基礎(chǔ)表的架構(gòu);,將視圖綁定到基礎(chǔ)表的架構(gòu);VIEW_METADATAVIEW_METADATA, 指定為引用視圖的查詢請求瀏覽模式的元數(shù)據(jù)時,指定為引用視圖的查詢請求瀏覽模式的元數(shù)據(jù)時,SQL ServerSQL Server實例將向?qū)嵗龑⑾?DB-LibraryDB-Library、ODBCODBC和和OLE DB APIOLE DB API返回有關(guān)視圖的元數(shù)據(jù)信息
20、。返回有關(guān)視圖的元數(shù)據(jù)信息。 這里需要注意的是:這里需要注意的是: CREATE VIEW CREATE VIEW必須是查詢批處理中的第一句。必須是查詢批處理中的第一句。 視圖定義中的視圖定義中的SELECTSELECT子句不能包含下列內(nèi)容:子句不能包含下列內(nèi)容: 1) 1) COMPUTECOMPUTE或或COMPUTE BYCOMPUTE BY子句。子句。 2) 2) ORDER BYORDER BY子句,除非在子句,除非在SELECTSELECT語句的選擇列表中也有一個語句的選擇列表中也有一個TOPTOP子句。子句。 3) 3) INTOINTO關(guān)鍵字。關(guān)鍵字。 4) 4) OPTION
21、OPTION子句。子句。 5) 5) 引用臨時表或表變量。引用臨時表或表變量。 【例【例9-19-1】創(chuàng)建完整的計算機系部門的讀者借閱信息視圖】創(chuàng)建完整的計算機系部門的讀者借閱信息視圖“計算機系讀者計算機系讀者 借閱情況借閱情況”,并禁止用戶查看視圖的定義語句。,并禁止用戶查看視圖的定義語句。 創(chuàng)建視圖可以使用如下語句:創(chuàng)建視圖可以使用如下語句: CREATE VIEW CREATE VIEW 計算機系讀者借閱情況計算機系讀者借閱情況 WITH ENCRYPTIONWITH ENCRYPTION AS AS SELECT U.UserId,U.UserName,UserSex,CateName
22、,UserDep,UserAdd, SELECT U.UserId,U.UserName,UserSex,CateName,UserDep,UserAdd, UserTel,UserReg,UserBkNum,BookId,LendDate,RtnDate UserTel,UserReg,UserBkNum,BookId,LendDate,RtnDate FROM UserTb U join Lending L on U.UserId=L.UserId FROM UserTb U join Lending L on U.UserId=L.UserId WHERE UserDep like% W
23、HERE UserDep like%計算機系計算機系% GO GO 執(zhí)行以上語句后,使用執(zhí)行以上語句后,使用SELECTSELECT語句語句 查詢視圖:查詢視圖: SELECT SELECT * * FROM FROM 計算機系讀者借閱情況計算機系讀者借閱情況 在查詢頁中輸入以上代碼,單擊按在查詢頁中輸入以上代碼,單擊按 鈕,可以看到結(jié)果如圖鈕,可以看到結(jié)果如圖9-59-5所示。所示。 9.3 9.3 修改、刪除和重命名視圖修改、刪除和重命名視圖 9.3.1 9.3.1 修改視圖修改視圖 修改視圖的定義有兩種方法:一是使用修改視圖的定義有兩種方法:一是使用SQL Server Manageme
24、ntSQL Server Management Studio Studio工具修改視圖定義,二是通過書寫工具修改視圖定義,二是通過書寫Transact-SQLTransact-SQL語句修改視圖定語句修改視圖定 義。下面分別介紹兩種方法。義。下面分別介紹兩種方法。 1. 1. 使用使用SQL Server Management StudioSQL Server Management Studio工具修改視圖定義工具修改視圖定義 下面介紹使用工具修改視圖定義的步驟。下面介紹使用工具修改視圖定義的步驟。 1 1)打開)打開“SQL Server Management Studio”SQL Serv
25、er Management Studio”窗口,在左邊的窗口,在左邊的“對象資源管對象資源管 理器理器”中中“數(shù)據(jù)庫數(shù)據(jù)庫”選項,展開要建立視圖的具體數(shù)據(jù)庫,單擊其下的選項,展開要建立視圖的具體數(shù)據(jù)庫,單擊其下的“視視 圖圖”對象,在打開的視圖列表中右鍵選中要修改的視圖。對象,在打開的視圖列表中右鍵選中要修改的視圖。 2) 2) 在彈出的快捷菜單中選擇在彈出的快捷菜單中選擇“設(shè)計設(shè)計”,則會打開一個與創(chuàng)建視圖一樣的,則會打開一個與創(chuàng)建視圖一樣的 設(shè)設(shè) 計窗口,用戶可以在該窗口中修改視圖的定義,比如添加或刪除一張表,計窗口,用戶可以在該窗口中修改視圖的定義,比如添加或刪除一張表, 添加或刪除一個
26、選中的字段等。修改完畢后,單擊添加或刪除一個選中的字段等。修改完畢后,單擊“確定確定”按鈕完成修改。按鈕完成修改。 2. 2. 使用使用ALTER VIEWALTER VIEW語句修改視圖定義語句修改視圖定義 使用使用Transact-SQLTransact-SQL語句修改視圖定義需要使用語句修改視圖定義需要使用ALTER VIEWALTER VIEW語句,語句, ALTER VIEWALTER VIEW語句的語法格式如下:語句的語法格式如下: ALTER VIEW schema_name view_name ( column ,n ) ALTER VIEW schema_name view_
27、name ( column ,n ) WITH ,n WITH ,n AS select_statementAS select_statement WITH CHECK OPTION WITH CHECK OPTION 各個子句的說明與創(chuàng)建視圖的語句一致。各個子句的說明與創(chuàng)建視圖的語句一致。 【例【例9-29-2】修改】修改9.2.29.2.2節(jié)【例節(jié)【例9-19-1】所創(chuàng)建的】所創(chuàng)建的“計算機系讀者借閱情況計算機系讀者借閱情況”視圖視圖 ,使其顯示計算機系教師讀者的借閱情況,且不需要顯示讀者的地址和電,使其顯示計算機系教師讀者的借閱情況,且不需要顯示讀者的地址和電 話信息。話信息。 修改視圖
28、定義的代碼如下:修改視圖定義的代碼如下: ALTER VIEW ALTER VIEW 計算機系讀者借閱情況計算機系讀者借閱情況 WITH ENCRYPTIONWITH ENCRYPTION AS AS SELECT U.UserId,U.UserName,UserSex,CateName,UserDep,UserReg, SELECT U.UserId,U.UserName,UserSex,CateName,UserDep,UserReg, UserBkNum,BookId,LendDate,RtnDate UserBkNum,BookId,LendDate,RtnDate FROM User
29、Tb U join Lending L on U.UserId=L.UserId FROM UserTb U join Lending L on U.UserId=L.UserId WHERE UserDep like% WHERE UserDep like%計算機系計算機系%and CateName=%and CateName=教師教師 GOGO 執(zhí)行以上語句后,使用執(zhí)行以上語句后,使用SELECTSELECT語句查詢語句查詢 視圖:視圖: SELECT SELECT * * FROM FROM 計算機系讀者借閱情況計算機系讀者借閱情況 在查詢頁中輸入以上代碼,單擊按鈕,在查詢頁中輸入以上代
30、碼,單擊按鈕, 可以看到結(jié)果如圖可以看到結(jié)果如圖9-69-6所示。所示。 9.3.2 9.3.2 刪除視圖刪除視圖 視圖可以使用視圖可以使用Management StudioManagement Studio工具刪除,也可以使用工具刪除,也可以使用Transact-SQLTransact-SQL 語句刪除。語句刪除。 1. 1. 使用使用SQL Server Management StudioSQL Server Management Studio工具刪除視圖工具刪除視圖 使用工具刪除視圖的步驟如下:使用工具刪除視圖的步驟如下: 1 1) 打開打開“SQL Server Management
31、Studio”SQL Server Management Studio”窗口,在左邊的窗口,在左邊的“對象資源管對象資源管 理器理器”中中“數(shù)據(jù)庫數(shù)據(jù)庫”選項,展開要建立視圖的具體數(shù)據(jù)庫,單擊其下的選項,展開要建立視圖的具體數(shù)據(jù)庫,單擊其下的“視視 圖圖”對象,在打開的視圖列表中右鍵選中要刪除的視圖。對象,在打開的視圖列表中右鍵選中要刪除的視圖。 2) 2) 在彈出的快捷菜單中選擇在彈出的快捷菜單中選擇“刪除刪除”命令,會出現(xiàn)命令,會出現(xiàn)“刪除對象刪除對象”對話框,對話框, 該對話框中,單擊該對話框中,單擊“確定確定”按鈕,即可刪除該視圖。單擊對話框中下部的按鈕,即可刪除該視圖。單擊對話框中下
32、部的 “顯示依賴關(guān)系顯示依賴關(guān)系”則可以顯示該視圖依賴的對象及依賴于該視圖的對象。則可以顯示該視圖依賴的對象及依賴于該視圖的對象。 2. 2. 使用使用DROP VIEWDROP VIEW語句刪除視圖語句刪除視圖 使用使用Transact-SQLTransact-SQL語句的語句的DROP VIEWDROP VIEW命令刪除視圖,其語法形式如下:命令刪除視圖,其語法形式如下: DROP VIEW schema_name view_name ,n DROP VIEW schema_name view_name ,n 使用該命令可以同時刪除多個視圖,多個視圖名稱之間用逗號間隔。使用該命令可以同時刪
33、除多個視圖,多個視圖名稱之間用逗號間隔。 【例【例9-39-3】刪除視圖】刪除視圖book_viewbook_view DROP VIEW book_view DROP VIEW book_view 9.3.3 9.3.3 重命名視圖重命名視圖 在在Management StudioManagement Studio中,選擇要重命名的視圖,右鍵單擊,在彈出的中,選擇要重命名的視圖,右鍵單擊,在彈出的 快捷菜單中選擇快捷菜單中選擇“重命名重命名”選項即可。選項即可。 或者可以使用系統(tǒng)存儲過程或者可以使用系統(tǒng)存儲過程sp_renamesp_rename來重命名視圖,其語法形式如下:來重命名視圖,其
34、語法形式如下: sp_name object_name, new_namesp_name object_name, new_name 其中:其中: object_nameobject_name:當前的視圖名:當前的視圖名 new_namenew_name:指定對象的新名稱。:指定對象的新名稱。 【例【例9-49-4】將視圖】將視圖“計算機系讀者借閱情況計算機系讀者借閱情況”重命名為重命名為“計算機系教師借閱計算機系教師借閱 情況情況” 實現(xiàn)代碼如下:實現(xiàn)代碼如下: EXEC sp_rename EXEC sp_rename 計算機系讀者借閱情況計算機系讀者借閱情況,計算機系教師借閱情況計算機系
35、教師借閱情況 9.4 使用視圖操作數(shù)據(jù)表 除了在除了在SELECTSELECT中使用視圖作為數(shù)據(jù)源進行查詢以外,還可以通過視圖中使用視圖作為數(shù)據(jù)源進行查詢以外,還可以通過視圖 對數(shù)據(jù)表的數(shù)據(jù)進行添加、修改和刪除的操作。對數(shù)據(jù)表的數(shù)據(jù)進行添加、修改和刪除的操作。 使用視圖對數(shù)據(jù)表的記錄進行操作時,所創(chuàng)建的視圖必須滿足如下的要使用視圖對數(shù)據(jù)表的記錄進行操作時,所創(chuàng)建的視圖必須滿足如下的要 求:求: 1) 1) 修改視圖中的數(shù)據(jù)時,不能同時修改兩個或者多個基本表,當對基于兩修改視圖中的數(shù)據(jù)時,不能同時修改兩個或者多個基本表,當對基于兩 個或多個表創(chuàng)建的視圖進行修改時,每次的修改只能影響一張基本表。個
36、或多個表創(chuàng)建的視圖進行修改時,每次的修改只能影響一張基本表。 2) 2) 視圖的字段中不能包含計算列,計算列是不能更新的。視圖的字段中不能包含計算列,計算列是不能更新的。 3) 3) 如果在創(chuàng)建視圖時指定了如果在創(chuàng)建視圖時指定了WITH CHECK OPTIONWITH CHECK OPTION選項,那么使用視圖修改選項,那么使用視圖修改 數(shù)據(jù)庫時,必須保證修改后的數(shù)據(jù)滿足視圖定義的要求。數(shù)據(jù)庫時,必須保證修改后的數(shù)據(jù)滿足視圖定義的要求。 4) 4) 如果在視圖定義中使用了如果在視圖定義中使用了GROUP BYGROUP BY、UNIONUNION、DISTINCTDISTINCT或或TOPT
37、OP子句,則視子句,則視 圖不允許更新。圖不允許更新。 5) 5) 如果在視圖定義中有嵌套查詢,并且內(nèi)層查詢的如果在視圖定義中有嵌套查詢,并且內(nèi)層查詢的FROMFROM子句中涉及的表也子句中涉及的表也 是導(dǎo)出該視圖的基本表,則視圖不允許更新。是導(dǎo)出該視圖的基本表,則視圖不允許更新。 9.5 9.5 查看視圖信息查看視圖信息 SQL Server SQL Server允許用戶獲得視圖的一些信息,如視圖的基本信息、允許用戶獲得視圖的一些信息,如視圖的基本信息、 的定義信息、視圖與其他對象間的依賴關(guān)系等。這些信息可以通過相應(yīng)的的定義信息、視圖與其他對象間的依賴關(guān)系等。這些信息可以通過相應(yīng)的 系統(tǒng)存儲
38、過程來查看。系統(tǒng)存儲過程來查看。 1. 1. 查看視圖的基本信息查看視圖的基本信息 可以使用系統(tǒng)存儲過程可以使用系統(tǒng)存儲過程sp_helpsp_help來顯示視圖的名稱、所有者、創(chuàng)建時間、來顯示視圖的名稱、所有者、創(chuàng)建時間、 列信息等。如圖列信息等。如圖9-79-7所示,查看視圖所示,查看視圖book_viewbook_view的基本信息。的基本信息。 2. 2. 查看視圖的定義信息查看視圖的定義信息 如果視圖在創(chuàng)建的時候沒有被加密,則可以使用系統(tǒng)存儲過程如果視圖在創(chuàng)建的時候沒有被加密,則可以使用系統(tǒng)存儲過程 sp_helptextsp_helptext顯示視圖的定義信息。顯示視圖的定義信息。
39、 【例【例9-59-5】查看視圖】查看視圖“book_view”book_view”的定義信息的定義信息 EXEC sp_helptext book_viewEXEC sp_helptext book_view 在查詢頁中輸入以上代碼,單擊按鈕,結(jié)果如圖在查詢頁中輸入以上代碼,單擊按鈕,結(jié)果如圖9-89-8所示。所示。 【例【例9-69-6】查看視圖】查看視圖“計算機系教師借閱信息計算機系教師借閱信息”的定義信息的定義信息 EXEC sp_helptext EXEC sp_helptext 計算機系教師借閱情況計算機系教師借閱情況 在查詢頁中輸入以上代碼,單擊按鈕,結(jié)果如圖在查詢頁中輸入以上代
40、碼,單擊按鈕,結(jié)果如圖9-99-9所示。所示。 因為在創(chuàng)建視圖因為在創(chuàng)建視圖“計算機系教師借閱情況計算機系教師借閱情況” 時已加密,所以查詢結(jié)果給出文本已加密時已加密,所以查詢結(jié)果給出文本已加密 的提示。的提示。 3. 3. 查看視圖與其他對象間的依賴關(guān)系查看視圖與其他對象間的依賴關(guān)系 使用系統(tǒng)存儲過程使用系統(tǒng)存儲過程sp_dependssp_depends查看視圖與其他對象間的依賴關(guān)系,如,查看視圖與其他對象間的依賴關(guān)系,如, 視圖在哪些表的基礎(chǔ)上創(chuàng)建、有哪些數(shù)據(jù)庫對象的定義引用了該視圖等。視圖在哪些表的基礎(chǔ)上創(chuàng)建、有哪些數(shù)據(jù)庫對象的定義引用了該視圖等。 【例【例9-79-7】查看視圖】查看
41、視圖“計算機系教師借閱情況計算機系教師借閱情況”的依賴關(guān)系的依賴關(guān)系 EXEC sp_depends EXEC sp_depends 計算機系教師借閱情況計算機系教師借閱情況 在查詢頁中輸入以上代碼,單擊按鈕,結(jié)果如圖在查詢頁中輸入以上代碼,單擊按鈕,結(jié)果如圖9-109-10所示。所示。 9.6 9.6 索引概述索引概述 在日常生活中,我們經(jīng)常會用到索引,如圖書的目錄、在日常生活中,我們經(jīng)常會用到索引,如圖書的目錄、 詞典的索引等。利用索引,我們可以很快地找到需要找的東詞典的索引等。利用索引,我們可以很快地找到需要找的東 西。在對數(shù)據(jù)庫進行操作時,用到索引可以提高數(shù)據(jù)存取的西。在對數(shù)據(jù)庫進行操
42、作時,用到索引可以提高數(shù)據(jù)存取的 性能及操作的速度,從而使用戶能夠較快地查詢并準確地得性能及操作的速度,從而使用戶能夠較快地查詢并準確地得 到希望的數(shù)據(jù)。到希望的數(shù)據(jù)。 本章將介紹索引的概念、類型以及創(chuàng)建和管理索引的方本章將介紹索引的概念、類型以及創(chuàng)建和管理索引的方 法。法。 9.6.1 9.6.1 什么是索引什么是索引 索引是一個單獨的、物理的數(shù)據(jù)庫結(jié)構(gòu),它是某個表中一列或若干列索引是一個單獨的、物理的數(shù)據(jù)庫結(jié)構(gòu),它是某個表中一列或若干列 值得集合和相應(yīng)的指向表中物理標識這些值得數(shù)據(jù)頁的邏輯指針清單。索值得集合和相應(yīng)的指向表中物理標識這些值得數(shù)據(jù)頁的邏輯指針清單。索 引是數(shù)據(jù)庫中一種常用且重
43、要的數(shù)據(jù)庫對象,它類似于圖書中的目錄。在引是數(shù)據(jù)庫中一種常用且重要的數(shù)據(jù)庫對象,它類似于圖書中的目錄。在 數(shù)據(jù)庫中,索引使數(shù)據(jù)庫程序不需要對整個表進行掃描就能在其中找到所數(shù)據(jù)庫中,索引使數(shù)據(jù)庫程序不需要對整個表進行掃描就能在其中找到所 需要的數(shù)據(jù)。需要的數(shù)據(jù)。 (1) (1) 使用索引的優(yōu)點使用索引的優(yōu)點 利用索引可以提高系統(tǒng)的性能,具有如下的優(yōu)點:利用索引可以提高系統(tǒng)的性能,具有如下的優(yōu)點: 1) 1) 創(chuàng)建唯一索引,可以保證表中的數(shù)據(jù)記錄不重復(fù)。創(chuàng)建唯一索引,可以保證表中的數(shù)據(jù)記錄不重復(fù)。 2) 2) 加快數(shù)據(jù)檢索速度。加快數(shù)據(jù)檢索速度。 3) 3) 加速表與表之間的連接,如果從多個表中檢
44、索數(shù)據(jù),數(shù)據(jù)庫可以通過直加速表與表之間的連接,如果從多個表中檢索數(shù)據(jù),數(shù)據(jù)庫可以通過直 接搜索各表的索引列,找到需要的數(shù)據(jù),在實現(xiàn)數(shù)據(jù)的參照完整性方面接搜索各表的索引列,找到需要的數(shù)據(jù),在實現(xiàn)數(shù)據(jù)的參照完整性方面 有特別的意義。有特別的意義。 4) 4) 在使用在使用ORDER BYORDER BY和和GROUP BYGROUP BY子句中進行檢索數(shù)據(jù)時,可以顯著減少查詢子句中進行檢索數(shù)據(jù)時,可以顯著減少查詢 中分組和排序的時間。中分組和排序的時間。 5) 5) 可以在檢索數(shù)據(jù)的過程中使用優(yōu)化隱藏器,從而提高系統(tǒng)的性能。可以在檢索數(shù)據(jù)的過程中使用優(yōu)化隱藏器,從而提高系統(tǒng)的性能。 那么,在什么情
45、況下應(yīng)該考慮創(chuàng)建索引?是不是索引創(chuàng)建得越多越好那么,在什么情況下應(yīng)該考慮創(chuàng)建索引?是不是索引創(chuàng)建得越多越好 呢?呢? (2) (2) 創(chuàng)建索引需要遵循一定的原則創(chuàng)建索引需要遵循一定的原則 創(chuàng)建索引一般遵循以下的原則:創(chuàng)建索引一般遵循以下的原則: 1) 1) 主鍵列上一定要建立索引。主鍵列上一定要建立索引。 2) 2) 在連接中頻繁使用的列,比如外鍵。在連接中頻繁使用的列,比如外鍵。 3) 3) 在頻繁查詢的列上最好建立索引。在頻繁查詢的列上最好建立索引。 4) 4) 對于對于texttext、imageimage和和bitbit數(shù)據(jù)類型的列不要建立索引。數(shù)據(jù)類型的列不要建立索引。 5) 5)
46、對于具有重復(fù)值較多的列不要建立索引。對于具有重復(fù)值較多的列不要建立索引。 (3) (3) 索引并非越多越好索引并非越多越好 索引雖然很重要,但也不是越多越好,這是因為:索引雖然很重要,但也不是越多越好,這是因為: 1) 1) 創(chuàng)建索引要花費時間并占用存儲空間。創(chuàng)建聚集索引所需要的可用空創(chuàng)建索引要花費時間并占用存儲空間。創(chuàng)建聚集索引所需要的可用空 間是數(shù)據(jù)庫表中數(shù)據(jù)量的間是數(shù)據(jù)庫表中數(shù)據(jù)量的120%120%,且不包含當前表所占空間。,且不包含當前表所占空間。 2) 2) 維護索引也要花費時間。維護索引也要花費時間。 3) 3) 當對表進行修改時,需要維護索引,插入、更新和刪除的數(shù)據(jù)越多,當對表進
47、行修改時,需要維護索引,插入、更新和刪除的數(shù)據(jù)越多, 維護的開銷就越大。所以對于經(jīng)常插入、更新、刪除記錄的列不要建維護的開銷就越大。所以對于經(jīng)常插入、更新、刪除記錄的列不要建 立索引。立索引。 9.6.2 9.6.2 索引類型索引類型 SQL ServerSQL Server的索引主要分為兩類:聚集索引和非聚集索引。除此之的索引主要分為兩類:聚集索引和非聚集索引。除此之 外,還可以分為唯一索引、包含列索引、索引視圖、全文索引、空間索引、外,還可以分為唯一索引、包含列索引、索引視圖、全文索引、空間索引、 篩選索引和篩選索引和XMLXML索引等。下面主要介紹聚集索引和非聚集索引,其他的類型索引等。
48、下面主要介紹聚集索引和非聚集索引,其他的類型 只作簡單說明。只作簡單說明。 1. 1. 聚集索引聚集索引 聚集索引也稱簇索引,是指表中數(shù)據(jù)行的物理存儲順序與索引順序完全聚集索引也稱簇索引,是指表中數(shù)據(jù)行的物理存儲順序與索引順序完全 相同。當為一個表的某列創(chuàng)建聚集索引時,表中的數(shù)據(jù)會按該列進行重新相同。當為一個表的某列創(chuàng)建聚集索引時,表中的數(shù)據(jù)會按該列進行重新 排序,然后再存儲到磁盤上,即聚集索引與數(shù)據(jù)是混為一體的。排序,然后再存儲到磁盤上,即聚集索引與數(shù)據(jù)是混為一體的。 每個表只能創(chuàng)建一個聚集索引,因為一個表中的記錄只能以一種物理順每個表只能創(chuàng)建一個聚集索引,因為一個表中的記錄只能以一種物理順
49、 序存放。一般建立在經(jīng)常搜索的列上。在默認情況下,序存放。一般建立在經(jīng)常搜索的列上。在默認情況下,SQL ServerSQL Server為主鍵為主鍵 約束自動建立聚集索引。約束自動建立聚集索引。 2. 2. 非聚集索引非聚集索引 非聚集索引也稱非簇索引,非聚集索引具有與表的數(shù)據(jù)完全分離的結(jié)非聚集索引也稱非簇索引,非聚集索引具有與表的數(shù)據(jù)完全分離的結(jié) 構(gòu),使用非聚集索引不用將物理數(shù)據(jù)頁中的數(shù)據(jù)按列排序。非聚集索引中構(gòu),使用非聚集索引不用將物理數(shù)據(jù)頁中的數(shù)據(jù)按列排序。非聚集索引中 存儲了組成非聚集索引的關(guān)鍵字的值和行定位器。存儲了組成非聚集索引的關(guān)鍵字的值和行定位器。 表中的每一個列上都可以有自
50、己的非聚集索引,創(chuàng)建的非聚集索引最表中的每一個列上都可以有自己的非聚集索引,創(chuàng)建的非聚集索引最 多為多為249249個。個。 從建立了聚集索引的表中取出數(shù)據(jù)要比建立了非聚集索引的表快。而從建立了聚集索引的表中取出數(shù)據(jù)要比建立了非聚集索引的表快。而 非聚集索引需要大量的磁盤空間和內(nèi)存。如果要在一個表中既建立聚集索非聚集索引需要大量的磁盤空間和內(nèi)存。如果要在一個表中既建立聚集索 引又建立非聚集索引,應(yīng)該先建立聚集索引,然后建立非聚集索引。引又建立非聚集索引,應(yīng)該先建立聚集索引,然后建立非聚集索引。 3. 3. 其他類型的索引其他類型的索引 除了以上兩種類型的索引外,還有以下類型的索引:除了以上兩種
51、類型的索引外,還有以下類型的索引: (1) (1) 唯一索引唯一索引 唯一索引確保索引鍵不包含重復(fù)的值,因此,表或視圖中的每一行在唯一索引確保索引鍵不包含重復(fù)的值,因此,表或視圖中的每一行在 某種程度上是唯一的。聚集索引和非聚集索引都可以是唯一索引。某種程度上是唯一的。聚集索引和非聚集索引都可以是唯一索引。 (2) (2) 包含列索引包含列索引 一種非聚集索引,它擴展后不僅包含鍵列,還包含非鍵列。一種非聚集索引,它擴展后不僅包含鍵列,還包含非鍵列。 (3) (3) 索引視圖索引視圖 視圖的索引將具體化(執(zhí)行)視圖,并將結(jié)果集永久存儲在唯一的聚視圖的索引將具體化(執(zhí)行)視圖,并將結(jié)果集永久存儲在
52、唯一的聚 集索引中,而且其存儲方法與帶聚集索引的表的存儲方法相同。創(chuàng)建聚集集索引中,而且其存儲方法與帶聚集索引的表的存儲方法相同。創(chuàng)建聚集 索引后,可以為視圖添加非聚集索引。索引后,可以為視圖添加非聚集索引。 (4) (4) 全文索引全文索引 一種特殊類型的基于標記的功能性索引,有一種特殊類型的基于標記的功能性索引,有Microsoft SQL ServerMicrosoft SQL Server全全 文引擎生成和維護。用于幫助在字符串數(shù)據(jù)中搜索復(fù)雜的詞。文引擎生成和維護。用于幫助在字符串數(shù)據(jù)中搜索復(fù)雜的詞。 (5) (5) 空間索引空間索引 利用空間索引,可以更高效地對利用空間索引,可以更高
53、效地對geometrygeometry數(shù)據(jù)類型的列中的空間對數(shù)據(jù)類型的列中的空間對 象(空間數(shù)據(jù))執(zhí)行某些操作。空間索引可減少需要應(yīng)用開銷相對較大象(空間數(shù)據(jù))執(zhí)行某些操作??臻g索引可減少需要應(yīng)用開銷相對較大 的空間操作的對象。的空間操作的對象。 (6) (6) 篩選索引篩選索引 一種經(jīng)過優(yōu)化的非聚集索引,尤其適用于涵蓋從定義完善的數(shù)據(jù)子一種經(jīng)過優(yōu)化的非聚集索引,尤其適用于涵蓋從定義完善的數(shù)據(jù)子 集中選擇數(shù)據(jù)的查詢。篩選索引使用篩選謂詞對表中的部分行進行索引。集中選擇數(shù)據(jù)的查詢。篩選索引使用篩選謂詞對表中的部分行進行索引。 與全文索引相比,設(shè)計良好的篩選索引可以提高查詢性能、減少索引維與全文索
54、引相比,設(shè)計良好的篩選索引可以提高查詢性能、減少索引維 護開銷并可降低索引存儲開銷。護開銷并可降低索引存儲開銷。 (7) XML(7) XML xml xml數(shù)據(jù)類型中數(shù)據(jù)類型中XMLXML二進制大型對象(二進制大型對象(BLOBBLOB)的已拆分持久表示形式。)的已拆分持久表示形式。 9.7 9.7 創(chuàng)建索引創(chuàng)建索引 創(chuàng)建索引之前首先要清楚,只有表的所有者才能在表上創(chuàng)建索引,在創(chuàng)建索引之前首先要清楚,只有表的所有者才能在表上創(chuàng)建索引,在 創(chuàng)建唯一索引時,應(yīng)該保證創(chuàng)建索引的列不包含重復(fù)的數(shù)據(jù),并且沒有兩創(chuàng)建唯一索引時,應(yīng)該保證創(chuàng)建索引的列不包含重復(fù)的數(shù)據(jù),并且沒有兩 個或更多的空值。個或更多的
55、空值。 可以在建表的時候創(chuàng)建索引,也可以對已存在的表創(chuàng)建索引。創(chuàng)建索可以在建表的時候創(chuàng)建索引,也可以對已存在的表創(chuàng)建索引。創(chuàng)建索 引有兩種方法:一是使用引有兩種方法:一是使用SQL Server Management StudioSQL Server Management Studio工具創(chuàng)建索引工具創(chuàng)建索引 ,二是通過書寫,二是通過書寫Transact-SQLTransact-SQL語句創(chuàng)建索引。下面分別介紹兩種方法。語句創(chuàng)建索引。下面分別介紹兩種方法。 9.7.1 9.7.1 使用使用SQL Server Management StudioSQL Server Management Stu
56、dio工具創(chuàng)建索引工具創(chuàng)建索引 下面以具體的例子介紹使用下面以具體的例子介紹使用Management StudioManagement Studio創(chuàng)建索引的步驟。創(chuàng)建索引的步驟。 【例【例9-89-8】為數(shù)據(jù)庫】為數(shù)據(jù)庫“Library”Library”中的中的“UserTb”UserTb”表創(chuàng)建一個唯一的非聚集表創(chuàng)建一個唯一的非聚集 索引索引index_UserNameindex_UserName。 創(chuàng)建的步驟如下:創(chuàng)建的步驟如下: 1) 1) 打開打開“SQL Server Management Studio”SQL Server Management Studio”窗口,在左邊的窗口,
57、在左邊的“對象資源管對象資源管 理器理器”中中“數(shù)據(jù)庫數(shù)據(jù)庫”選項,展開選項,展開“Library”Library”數(shù)據(jù)庫下的數(shù)據(jù)庫下的“UserTb”UserTb”表,右表,右 鍵單擊其下的鍵單擊其下的“索引索引”對象,在彈出的快捷菜單中選擇對象,在彈出的快捷菜單中選擇“新建索引新建索引”,如,如 圖圖9-119-11所示。所示。 2) 2) 如圖如圖9-129-12所示,在打開的所示,在打開的“新建索引新建索引”窗口中,在窗口中,在“索引名稱索引名稱”里輸入里輸入 “index_UserName”index_UserName”,在,在“索引類型索引類型”下拉列表中選擇下拉列表中選擇“非聚集
58、非聚集”,并選,并選 中復(fù)選框中復(fù)選框“唯一唯一”。接下來要添加索引列,單擊。接下來要添加索引列,單擊“添加添加”按鈕,在彈出的按鈕,在彈出的 “從從dbo.UserTbdbo.UserTb中選擇列中選擇列”窗口中表列中,選中列窗口中表列中,選中列“UserName”UserName”前的復(fù)選前的復(fù)選 框。單擊框。單擊“確定確定”按鈕,看到在按鈕,看到在“索引鍵列索引鍵列”列表中已經(jīng)添加了該列,可列表中已經(jīng)添加了該列,可 以修改索引列的升序還是降序的排序順序。為獲得最佳功能,建議只為每以修改索引列的升序還是降序的排序順序。為獲得最佳功能,建議只為每 個索引列選擇一列或兩列。個索引列選擇一列或兩
59、列。 3) 3) 返回返回“新建索引新建索引”窗口窗口 后,再單擊該窗口中的后,再單擊該窗口中的“確確 定定”按鈕,索引節(jié)點下便生按鈕,索引節(jié)點下便生 成了一個名成了一個名 “index_UserName”index_UserName”的索引。的索引。 9.7.2 9.7.2 使用使用CREATE INDEXCREATE INDEX語句創(chuàng)建索引語句創(chuàng)建索引 使用使用CREATE INDEXCREATE INDEX語句創(chuàng)建索引的語法格式如下:語句創(chuàng)建索引的語法格式如下: CREATE UNIQUE CLUSTERED | NONCLUSTERED INDEX index_nameCREATE U
60、NIQUE CLUSTERED | NONCLUSTERED INDEX index_name ON table | view ( column ASC | DESC ,n ) ON table | view ( column ASC | DESC ,n ) WITH WITH ( PAD_INDEX= ON | OFF ( PAD_INDEX= ON | OFF | FILLFACTOR=filefactor | FILLFACTOR=filefactor | IGNORE_DUP_KEY= ON | OFF | IGNORE_DUP_KEY= ON | OFF | DROP_EXISTIN
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人出租車承包業(yè)務(wù)培訓(xùn)與發(fā)展合同
- 冷藏商品購銷合同范本
- 二手環(huán)衛(wèi)車買賣合同范本
- 2025年度吊車安全風險評估與預(yù)防措施協(xié)議
- 機房網(wǎng)絡(luò)攻擊預(yù)警及響應(yīng)系統(tǒng)的構(gòu)建
- 2025年石英玻璃擋板項目投資可行性研究分析報告
- 門衛(wèi)保潔合同范本
- 根據(jù)業(yè)務(wù)計劃制定財務(wù)計劃
- 冷凍食品購貨合同范本
- 河北改造計劃暫停
- 真需求-打開商業(yè)世界的萬能鑰匙
- DB32T 4004-2021 水質(zhì) 17種全氟化合物的測定 高效液相色譜串聯(lián)質(zhì)譜法
- JIS C9335-2-5-2021 家用和類似用途電器.安全性.第2-5部分:洗碗機的特殊要求
- 建設(shè)年飼養(yǎng)240萬只蛋雛雞培育基地項目可行性研究報告
- 大連理工畫法幾何電子教案2003第八章
- 中國數(shù)學發(fā)展歷史(課堂PPT)
- 一至六年級下冊音樂期末試卷及答案
- 黃金太陽漆黑的黎明金手指
- 節(jié)水灌溉理論與技術(shù)
- 工商企業(yè)管理專業(yè)??飘厴I(yè)論文
- 皮帶機提升機鏈運機功率計算
評論
0/150
提交評論