1. 程式人生 > >資料庫學習SQL Server 第三章 約束、索引和檢視

資料庫學習SQL Server 第三章 約束、索引和檢視

第三章 約束、索引和檢視@TOC

1.簡介

約束,比如說要求欄位非空,就是最簡單的非空約束; 表格阻止更改和重新建立的問題(工具–選項–設計–取消阻止保護)

2.CHEAK約束

表設計器,右鍵–選擇cheak約束,比如要求收入=工資+獎金的約束,若新增值的時候,不遵循cheak約束將會報錯。

3.主鍵約束

4.建立唯一鍵

在表格中,若這一列被建立為唯一鍵,有重複輸入會報錯

5.索引介紹

起到目錄作用,方便檢索 優點:加速資料檢索、加速連線、對查詢進行優化,強制實施列的唯一性,通過建立唯一索引,保證不重複 缺點:建立單獨花時間,但是佔空間大,減慢資料修改的速度,每一次資料更新,索引也會單獨更新維護

5.1索引型別

索引主要目的是提高了SQL Server系統的效能,加快資料的查詢速度與減少系統的響應時間 一.索引種類也有很多,一般分為兩種,按聚集索引和非聚集索引分類 1.非聚集索引: 非聚集索引表中資料完全分離,是邏輯上的連續,物理儲存並不連續。就像欄位,聚集索引是連續的,a後面肯定是b,非聚集索引就不連續了,就像圖書館的某個作者的書,有可能在第1個貨架上和第10個貨架上。比聚集索引更佔空間,但是可以在表中建立多個,理論上一個表中 2.聚集索引:對錶的物理資料進行排序 儲存記錄是物理上連續存在,所需要的空間很大,相當於資料所需空間的1.2倍 還有一個小知識點就是:聚集索引一個表只能有一個,而非聚集索引一個表可以存在多個。

二.索引的另一種分類方式,唯一索引和不唯一索引 1.唯一索引:確定表中欄位的值無重複,設定為唯一索引的列,不能有重複值。無論是聚集索引還是非聚集的,都可以設定成為唯一索引, 2.非唯一索引:可以允許有重複值,非唯一索引在提取資料時,效率更低,需要的資源大於唯一索引 三.單列索引和多列索引 1.單列索引:單獨一個欄位建立索引,比如姓名建立一個索引,年齡建立一個索引 2.多列索引:多個欄位組合建立索引,比如工資和獎金組合建立一個索引,又叫組合索引

5.2建立索引

1.程式碼檢視索引 Exec sp_helpindex 表名 2.建立索引 Create index new_index on TABLE_NAME/VIEW(view_name order)

*建立索引 索引名稱 表名 /檢視 (欄位 順序,預設正序)

UNIQUE: 建立唯一索引。 CLUSTERED: 建立聚集索引。 NONCLUSTERED: 建立非聚集索引。 Index_property: 索引屬性。 若不指明採用的索引結構,預設為非聚集。

5.3 修改索引

1.修改索引名稱 exec sp_rename ‘table.new_index_rename’, ‘new_index1’, ‘index’ 重新命名語句 表名.索引名 新索引名 ‘index’ sp_rename 修改名稱所用的語句 2.刪除索引 drop index table_name.index_name

6.檢視

6.1概念

檢視是從一個或者多個表匯出的表的集合,但檢視是一個虛擬表,在檢視中可以使用SELECT語句查詢資料,以及使用insert、update和delete語句修改記錄,對於檢視的操作最終轉化為對基本資料表的操作。檢視不僅可以方便操作,而且可以保障資料庫系統的安全性。 檢視一經定義便儲存在資料庫中,與其相對應的資料並沒有像表資料那樣在資料庫中在儲存一份,通過檢視看到的資料只是存放在基本表中的資料。可以對其進行增刪該查,通過檢視對資料修改,基本表資料也對應變化,反之亦然。 檢視的優點和作用 簡化使用者對資料的理解,簡化對它們的操作 作為一種安全機制。通過檢視使用者只能檢視和修改他們所能看到的資料。 邏輯資料獨立性:幫助使用者遮蔽真實表結構變化帶來的影響。 缺點:檢視的查詢是先將指令請求轉化為底層於原表的操作,如果檢視很複雜,查詢就會佔用大量資源,不如直接用表查詢

6.2 檢視分類

SQL Server的檢視可以分為3類:標準檢視,索引檢視,分割槽檢視 1.標準檢視:組合了一個或多個表中的資料,可以獲得使用檢視中的大多數好處,包括重點將放在特定的資料上及簡化資料操作。 2.索引檢視:索引檢視是被具體化了的檢視,即它已經經過計算並存儲。可以為檢視建立索引,對檢視建立一個唯一的聚集索引。索引檢視可以顯著提高某些型別查詢的效能,索引檢視尤其適於聚合許多行的查詢,但它們不太適於經常更新的基本資料集。 3.分割槽檢視:在一臺多多臺伺服器間水平連線一組成員表的分割槽資料,這樣,資料看上去如同來自一個表。連線本地同一個SQL Server例項中的成員表的檢視是一個本地區分檢視。

6.3檢視的基本操作和語法

1.建立檢視 既可以使用SQLServer 建立檢視 CREATE VIEW view_name 建立檢視 檢視名 AS SELECT sentences select語句 2.修改檢視 alter view view——name 修改檢視 檢視名 as select sentences select語句 3.刪除檢視 drop view view_name1,view_name2,…,view_nameN; –該語句可以同時刪除多個檢視,只要在刪除各檢視名稱之間用逗號分隔即可。

6.4:檢視和表的區別

檢視是已經編譯好的SQL語句,是基於SQL語句的結果集的視覺化表,而表不是; 檢視(除過索引檢視)沒有實際的物理記錄,而基本表有; 表是內容,檢視是視窗; 表佔物理空間,而檢視不佔物理空間,檢視只是邏輯概念的存在; 檢視是檢視資料表的一種方法,可以查詢資料表中某些欄位構成的資料,只是一些SQL語句的集合。從安全形度說,檢視可以防止使用者接觸資料表,從而不知表結構; 表屬於全域性模式的表,是實表;檢視資料區域性模式的表,是虛表; 檢視的建立和刪除隻影響檢視本身,不影響對應的基本表。 作者:阿赫瓦里 出處:http://www.cnblogs.com/selene/