




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第7章 索引與視圖,1,本章內(nèi)容,7.1 索引概述 7.2 索引的操作 7.3 視圖概述 7.4 視圖的操作 7.5 視圖的應(yīng)用,2,7.1 索引概述,索引的基本概念 索引是對數(shù)據(jù)庫表中一個或多個字段的值進行排序而創(chuàng)建的一種分散存儲結(jié)構(gòu)。,3,7.1 索引概述,索引的基本概念 索引是對數(shù)據(jù)庫表中一個或多個字段的值進行排序而創(chuàng)建的一種分散存儲結(jié)構(gòu)。 建立索引的目的有以下幾點: (1)加速數(shù)據(jù)檢索 (2)加速連接、ORDER BY和GROUP BY等操作 (3)查詢優(yōu)化器依賴于索引起作用 (4)強制實行的惟一性,4,7.1 索引概述,索引的分類 根據(jù)數(shù)據(jù)庫的功能,在SQL Server 2005中
2、可創(chuàng)建3種類型的索引,即惟一性索引、主鍵索引和聚集索引。 1惟一性索引 在表中建立惟一性索引時,組成該索引的字段或字段組合在表中具有惟一值,也就是說,對于表中的任何兩行記錄來說,索引鍵的值都是各不相同。 2主鍵索引 表中通常有一個字段或一些字段組的合,其值用來惟一標識表中的每一行記錄,該字段或字段組合稱為表的主鍵。,5,7.1 索引概述,3聚集索引 在聚集索引中,表中各記錄的物理順序與鍵值的邏輯(索引)順序相同。只有在表中建立了一個聚集索引后,數(shù)據(jù)才會按照索引鍵值指定的順序存儲到表中。由于一個表中的數(shù)據(jù)只能按照一種順序來存儲,所以在一個表中只能建立一個聚集索引。,6,7.2 索引的操作,創(chuàng)建索
3、引 1使用SQL Server管理平臺創(chuàng)建索引,7,演示操作,7.2 索引的操作,2使用Transact-SQL語句創(chuàng)建索引 語法格式: CREATE UNIQUECLUSTERED|NONCLUSTERED INDEX index_name ON table_name(column_nameASC|DESC,n) WITH PAD_INDEX , FILLFACTOR=fillfactor , IGNORE_DUP_KEY , DROP_EXISTING , STATISTICS_NORECOMPUTE ON filegroup,8,7.2 索引的操作,例7-1 按employee表的emp
4、loyee_name列建立非聚集索引。 CREATE NONCLUSTERED INDEX name_idx ON employee(employee_name),9,7.2 索引的操作,查看索引 1用SQL Server管理平臺查看修改索引 2使用系統(tǒng)存儲過程查看索引 語法格式: sp_helpindex objname=name 其中objname=name子句為指定當(dāng)前數(shù)據(jù)庫中的表的名稱。 例7-2 在查詢分析器中查看表employee的索引。 USE Sales GO EXEC sp_helpindex employee GO,10,演示操作,7.2 索引的操作,編輯索引 1使用SQL
5、 Server管理平臺編輯索引 2使用系統(tǒng)存儲過程更改索引 語法格式: sp_rename OldName,NewName,object_type 例7-3 更改employee表中索引employee_index_1名稱為employee_index_id。 USE Sales GO EXEC sp_rename employee.employee_index_1,employee_index_id,index,11,演示操作,7.2 索引的操作,刪除索引 索引會減慢INSERT、UPDATE和DELETE語句的執(zhí)行速度。如果發(fā)現(xiàn)索引阻礙整體性能或不再需要索引,則可將其刪除。 1使用SQL
6、Server管理平臺刪除索引,12,演示操作,7.2 索引的操作,2使用Transact-SQL語句刪除索引 語法格式: DROP INDEX table_name.index_name ,.n 各選項的含義: (1)table_name:索引列所在的表。 (2)index_name:要刪除的索引名稱。索引名必須符合標識符的規(guī)則。,13,7.2 索引的操作,例7-4 刪除employee表內(nèi)名為employee_index_name的索引。 USE Sales IF EXISTS (SELECT name FROM sysindexes WHERE name = employee_index_
7、name) DROP INDEX employee.employee_index_name GO,14,7.3 視圖概述,視圖的概念 視圖是一個虛擬表,并不表示任何物理數(shù)據(jù),而只是用來查看數(shù)據(jù)的窗口而已。 對視圖的操作與對表的操作一樣,可以對其進行查詢、修改和刪除,但對數(shù)據(jù)的操作要滿足一定的條件。 對視圖所引用的基礎(chǔ)表來說,視圖的作用類似于篩選。,15,7.3 視圖概述,視圖的作用 視圖通常用來集中、簡化和自定義每個用戶對數(shù)據(jù)庫的不同認識。視圖可用作安全機制,方法是允許用戶通過視圖訪問數(shù)據(jù),而不授予用戶直接訪問視圖基礎(chǔ)表的權(quán)限。 (1)簡化操作 (2)定制數(shù)據(jù) (3)導(dǎo)出數(shù)據(jù) (4)安全性,1
8、6,7.3 視圖概述,視圖的限制 在創(chuàng)建或使用視圖時,應(yīng)遵守以下規(guī)定: (1)在一個批事務(wù)中,CREATE VIEW語句不能與其他SQL語句結(jié)合使用。 (2)不能在視圖上建立觸發(fā)器和索引。 (3)一個視圖最多只能有250列。 (4)不能基于臨時表建立視圖,由SELECT INTO語句可建立臨時表,在CREATE VIEW語句中不能使用INTO關(guān)鍵字。 (5)在CREATE VIEW語句中不能使用聯(lián)合操作符UNION。 (6)在插入或修改數(shù)據(jù)時,每個INSERT語句和UPDATE語句不能影響一個以上的視圖基表。 (7)對視圖中的計算列不允許使用INSERT語句插入數(shù)據(jù)。 (8)UPDATE語句不
9、能夠修改視圖的計算列數(shù)據(jù),也不允許它修改包含集合的函數(shù)和內(nèi)置函數(shù)的視圖列。 (9)在視圖的Text和Image數(shù)據(jù)類型的列上不允許使用READTEXT和WRITETEXT語句。,17,7.4 視圖的操作,創(chuàng)建視圖 1.使用SQL Server管理平臺創(chuàng)建視圖 2. 使用Transact-SQL語句建立視圖 語法結(jié)構(gòu): CREATE VIEW database_name.owner_name.view_name(column,) WITH ENCRYPTION|SCHEMABINDING|VIEW_METADATA AS select_statement WITH CHECK OPTION,18
10、,7.4 視圖的操作,例7-6 在Sales數(shù)據(jù)庫中創(chuàng)建sell_view視圖,該視圖選擇3個基表(employee,goods,sell_order)中的數(shù)據(jù)來顯示員工銷售貨物情況的虛擬表。 CREATE VIEW sell_view AS SELECT employee.employee_name, employee.employee_id, sell_order.order_num, sell_order.discount, goods.goods_name, goods.unit_price , sell_order.order_date FROM employee INNER JOI
11、N sell_order ON employee.employee_id = sell_order.employee_id INNER JOIN goods ON sell_order.goods_id = goods.goods_id,19,7.4 視圖的操作,修改視圖 1使用SQL Server管理平臺修改視圖 2使用Transact-SQL語句修改視圖 可以使用ALTER VIEW語句來修改視圖,其語法格式如下: ALTER VIEW . . view_name ( column ,.n ) WITH ,.n AS select_statement WITH CHECK OPTION :
12、= ENCRYPTION | SCHEMABINDING | VIEW_METADATA ,20,7.4 視圖的操作,刪除視圖 1. 使用SQL Server管理平臺刪除視圖 2使用Transact-SQL語句刪除視圖 可以使用DROP VIEW語句來刪除視圖,其語法格式如下: DROP VIEW view_name ,.n 其中View_name是要刪除的視圖名稱,可以刪除多個視圖。 例7-7 刪除view1視圖。 USE Sales IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = v
13、iew1) DROP VIEW view1 GO,21,7.4 視圖的操作,查看和修改視圖屬性 1用SQL Server管理平臺查看視圖屬性 2使用系統(tǒng)存儲過程sp_helptext查看視圖 語法格式: sp_helptext objname = name 3使用系統(tǒng)存儲過程重命名視圖 語法格式: sp_rename objname = object_name , newname = new_name , objtype = object_type ,22,7.5 視圖的應(yīng)用,通過視圖檢索表數(shù)據(jù) 在建立視圖后,可以用任一種查詢方式檢索視圖數(shù)據(jù),對視圖可使用連接、GROUP BY子句、子查詢等以
14、及它們的任意組合。 例7-8 查詢例7-6所創(chuàng)建的視圖sell_view中的姓名為錢達理的員工所銷售的商品名稱。 SELECT goods_name FROM sell_view WHERE employee_name=錢達理 ORDER BY order_date,23,7.5 視圖的應(yīng)用,通過視圖添加表數(shù)據(jù) 語法格式: INSERT INTO 視圖名 VALUES(列值1,列值2,列值3,列值n) 例7-9 在goods表中建立一個視圖,利用視圖插入一行數(shù)據(jù)。 CREATE VIEW goods_view AS SELECT goods_id,goods_name,classificati
15、on_id,supplier_id,unit_price,stock_quantity FROM goods WHERE (classification_id = P001) INSERT INTO goods_view VALUES (G0008,SONY DVD,P002, S001,400,10),24,7.5 視圖的應(yīng)用,通過視圖修改表數(shù)據(jù) 語法格式: UPDATE 視圖名 SET 列1=列值1 列2=列值2 . 列n=列值n WHERE 邏輯表達式,25,7.5 視圖的應(yīng)用,通過視圖刪除表數(shù)據(jù) 盡管視圖不一定包含基礎(chǔ)表的所有列,但可以通過視圖刪除基礎(chǔ)表的數(shù)據(jù)行。 語法格式: DELETE FROM 視圖名 WHERE 邏輯表達式 WHERE 邏輯表達式,26,7.5 視圖的應(yīng)用,通過視圖修改表數(shù)據(jù) 語法格式: UPDATE 視圖名 SET 列1=列值1 列2=列值2 . 列n=列值n WHERE 邏輯表達式,27,本章小結(jié),(1)索引是對數(shù)據(jù)庫表中一個或多個字段的值進行排序而創(chuàng)建的一種分散存儲結(jié)構(gòu)。建立索引的主要目的是加速數(shù)據(jù)檢索和連接、優(yōu)化查詢、強制實行惟一性等操作。主要有3種類型的索引,即惟一性索引、主鍵索
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 村民就業(yè)問題的現(xiàn)狀與挑戰(zhàn)分析
- 廣東省湛江雷州市2024年化學(xué)九上期末復(fù)習(xí)檢測模擬試題含解析
- 江蘇省無錫市錫山區(qū)錫東片2025屆化學(xué)九上期末質(zhì)量檢測模擬試題含解析
- 河北滄州泊頭市蘇屯初級中學(xué)2024年七上數(shù)學(xué)期末教學(xué)質(zhì)量檢測模擬試題含解析
- 江蘇省常州市溧陽市2025屆八上數(shù)學(xué)期末達標測試試題含解析
- 智能物流產(chǎn)業(yè)發(fā)展及技術(shù)創(chuàng)新研究報告
- 2025至2030靜脈留置針行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 寫字樓消防通道保潔要求
- 2025至2030數(shù)字金融行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國自動滴咖啡機行業(yè)市場占有率及投資前景評估規(guī)劃報告
- 實驗室培育鉆石行業(yè)技術(shù)發(fā)展趨勢報告
- 2025年領(lǐng)英大制造行業(yè)人才全球化報告-馬來西亞篇
- 專題:閱讀理解 30篇 中考英語高分提升之新題速遞第二輯【含答案+解析】
- 企業(yè)面試題目和答案大全
- 抖音房產(chǎn)直播課件
- 2025至2030中國近視眼治療儀市場競爭力剖析及企業(yè)經(jīng)營形勢分析報告
- 日本所有番號分類
- 國際壓力性損傷-潰瘍預(yù)防和治療臨床指南(2025年版)解讀課件
- 降低手術(shù)患者術(shù)中低體溫發(fā)生率
- 患者跌倒墜床風(fēng)險評估流程防范措施
- 病理生理學(xué)試題及答案
評論
0/150
提交評論