数据库原理与应用(SQL Server)笔记 第五章 索引和视图
目錄
- 前言
- 一、索引
- (一)索引的概念
- (二)索引的分類
- (三)索引的操作
- 1、創建
- 2、查看
- 2、修改
- 3、刪除
- 二、視圖
- (一)視圖的概念
- (二)視圖的分類
- (三)視圖的操作
- 1、創建
- 2、查詢
- 3、修改
- 4、刪除
- 結語
前言
本次內容,我們主要掌握數據庫的索引和視圖,主要介紹索引和視圖的概念、索引和視圖的操作。
一、索引
(一)索引的概念
索引是與表相關聯的存儲結構,用于提高表中數據的查詢速度,從而加快從數據庫中取得所需的數據。索引包含由表中的一列或多列生成的鍵,以及映射到指定表行的存儲位置的指針,這些鍵存儲在一個結構(B樹)中,使得快速查找與鍵值關聯的行。在建立索引后,不僅可以加快數據查詢,還可以加快排序和分組操作等等。
(二)索引的分類
1、根據結構,可分類為聚集索引和非聚集索引。聚集索引中索引的順序決定數據表中記錄行的順序,每個表中只能有一個聚集索引,其正文內容本身按照一定規則排列的目錄;非聚集索引中索引的結構獨立于數據行的結構,一個表中可以有多個非聚集索引,其正文內容純粹是正文的排序方式。
2、根據實現的功能,可分類為唯一性索引和非唯一性索引。唯一性即要求組成該索引的字段在表中有唯一值。
(三)索引的操作
接下來將會從索引的創建、索引的查看、索引的修改以及索引的刪除來分別介紹索引的具體操作。(可使用圖形界面方式和T-SQL語句實現操作,以下皆通過T-SQL語句實現。)
1、創建
使用CREATE INDEX語句來創建索引,格式如下:
CREATE (UNIQUE)/(CLUSTERED / NONCLUSTERED)INDEX <索引的名稱> /*UNIQUE表示該索引唯一;CLUSTERED / NONCLUSTERED表示該索引的組織方式*/ ON <表的名稱(列1,列2,...)>例1、在數據庫YGGZ中Salay表的EmpNO列和Wages列,創建一個唯一聚集索引IX_Salay。
sql語句:
USE YGGZ CREATE UNIQUE CLUSTERED INDEX IX_Salay ON Salay(EmpNo,Wages)
測試結果:
可以在左側對象資源管理器,找到Salay表中索引下創建的唯一聚集索引IX_Salay。
2、查看
使用sp_helpindex存儲過程來查看所創建的索引的屬性,格式如下:
EXEC sp_helpindex <表的名稱> /*EXEC表示調用存儲過程的函數*/例2、查看上例1的所建索引IX_Salay的屬性。
sql語句:
USE YGGZ EXEC sp_helpindex Salay
測試結果:
2、修改
使用ALTER INDEX語句來修改索引的屬性,格式如下:
ALTER INDEX <索引的名稱> ON <表的名稱> REBUILD /*重建索引*/ WITH (...) /*重建索引選項*/3、刪除
使用DROP INDEX語句來修改索引的屬性,格式如下:
DROP INDEX <表的名稱.索引名稱,...> / <索引名稱 ON 表的名稱,...>例3、刪除例1所創建的索引。
sql語句:
USE YGGZ DROP INDEX IX_Salay ON Salay
測試結果:
二、視圖
(一)視圖的概念
視圖簡單的來說,是給用戶觀察數據庫的一種機制,通過視圖瀏覽表中有關的數據,其數據的物理存放地址仍在表中,就是說并未將其真實提出來,只是一個虛擬表。稱用來導出視圖的表為基表,導出的視圖稱為虛表。
(二)視圖的分類
視圖可分為三種,分別是標準視圖、索引視圖和分區視圖。索引視圖是創建了唯一聚集索引的視圖;分區視圖在一臺或多臺服務器間水平連接一組成員表的分區數據。
(三)視圖的操作
接下來將會從視圖的創建、視圖的查詢、視圖的修改以及視圖的刪除來分別介紹視圖的具體操作。(也是可使用圖形界面方式和T-SQL語句實現操作,以下皆通過T-SQL語句實現。)
1、創建
使用CREATE VIEW語句來創建視圖,格式如下:
CREATE VIEW <視圖的名稱>(列1,...) AS SELECT語句(WITH CHECK OPTION)/*WITH CHECK OPTION指在視圖上進行的修改都要符合SELECT語句中所指定的準則*/例4、根據以下所給數據,在YGGZ數據庫中創建s視圖v_Employee,該視圖選擇員工表Employee中部門編號為102的所有女員工。
sql語句:
USE YGGZ GO CREATE VIEW v_Employee AS SELECT* FROM Employee WHERE Sex='女' AND DeptNo='102' WITH CHECK OPTION
測試結果:
2、查詢
查詢視圖時跟以前查詢表一樣,使用SELECT語句。
例5、查詢例4中所創建的視圖v_Employee。
sql語句:
USE YGGZ SELECT * FROM v_Employee
測試結果:
與查詢的結果是相同的。
3、修改
使用ALTER VIEW語句來修改視圖,格式如下:
ALTER VIEW <視圖的名稱>(列1,...) AS SELECT語句(WITH CHECK OPTION)例6、將例4中定義的視圖v_Employee進行修改,取消對部門編號的要求,并查詢該視圖。
sql語句:
修改:
USE YGGZ GO ALTER VIEW v_Employee AS SELECT* FROM Employee WHERE Sex='女' WITH CHECK OPTION
查詢:
USE YGGZ SELECT * FROM v_Employee
測試結果:
查詢結果:
4、刪除
使用DROP VIEW語句來刪除視圖,格式如下:
DROP VIEW(表的名稱.) <視圖的名稱,...> /*可使用該語句刪除一個或多個視圖*/例7、刪除例4中創建的視圖v_Employee。
sql語句:
USE YGGZ DROP VIEW v_Employee
測試結果:
結語
以上就是本次數據庫原理與應用的全部內容,感謝您的閱讀和支持,若有表述或代碼中有不當之處,望指出!您的指出和建議能給作者帶來很大的動力!!!
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的数据库原理与应用(SQL Server)笔记 第五章 索引和视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络实验(思科模拟器Cisco P
- 下一篇: HarmonyOS应用开发——使用HUA