視圖和索引

視圖

視圖是一個虛擬表,並不代表任何物理數據,只是用來查看數據的窗口而已。視圖並不是以一組數據的形式存儲在數據庫中,數據庫中只存儲視圖的定義,而不存儲視圖對應的數據,這些數據仍存儲在導出視圖的基本表中。當基本表中的數據發生變化時,從視圖中查詢出來的數據也隨之改變。

視圖由視圖名和視圖定義兩個部分組成。視圖是從一個或多個表導出來的表,它實際上是一個查詢結果,視圖的名字和視圖對應的查詢存儲在數據字典中。

視圖只供查詢,數據不可更改,查詢數據來源於我們建立的實體表。

SQL CREATE VIEW 語法

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

註釋:視圖總是顯示最近的數據。每當用戶查詢視圖時,數據庫引擎通過使用 SQL 語句來重建數據。


索引

用戶無法看到索引,它們只能被用來加速搜索/查詢。

聚集索引存儲記錄是物理上連續存在,而非聚集索引是邏輯上的連續,物理存儲並不連續。

爲表設置索引要付出代價的:一是增加了數據庫的存儲空間,二是在插入和修改數據時要花費較多的時間(因爲索引也要隨之變動)。

創建索引的語法:

CREATE [UNIQUE][CLUSTERED | NONCLUSTERED]  INDEX  index_name  

ON {table_name | view_name} [WITH [index_property [,....n]]

說明:

UNIQUE: 建立唯一索引。

CLUSTERED: 建立聚集索引。

NONCLUSTERED: 建立非聚集索引。

Index_property: 索引屬性。

 UNIQUE索引既可以採用聚集索引結構,也可以採用非聚集索引的結構,如果不指明採用的索引結構,則SQL Server系統默認爲採用非聚集索引結構。

1.42 刪除索引語法:

DROP INDEX table_name.index_name[,table_name.index_name]

說明:table_name: 索引所在的表名稱。

index_name : 要刪除的索引名稱。



發佈了47 篇原創文章 · 獲贊 32 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章