1.一個表只能有一個主索引-PRIMARY,且只有是數據庫表纔有主索引,後綴爲.CDX,索引關鍵字是不能夠重複的.哪怕是空記錄也只能夠有一條.
2.候選索引能夠有不少個,索引關鍵字一樣不能夠重複,一樣只存在於數據庫表.
3.惟一索引,能夠存在於自由表,但索引關鍵字不能夠重複.
4.普通索引簡單的理解就是隻起排序做用.索引關鍵字是能夠重複的.可存在於自由表.
主鍵與惟一索引的區別
主鍵是一種約束,惟一索引是一種索引,二者在本質上是不一樣的。 主鍵建立後必定包含一個惟一性索引,惟一性索引並不必定就是主鍵。 惟一性索引列容許空值,而主鍵列不容許爲空值。 主鍵列在建立時,已經默認爲空值 + 惟一索引了。 主鍵能夠被其餘表引用爲外鍵,而惟一索引不能。 一個表最多隻能建立一個主鍵,但能夠建立多個惟一索引。 主鍵更適合那些不容易更改的惟一標識,如自動遞增列、身份證號等。 在 RBO 模式下,主鍵的執行計劃優先級要高於惟一索引。 二者能夠提升查詢的速度。數據庫
CREATE UNIQUE INDEX test_UniqueKey ON test (UniqueKey);
彙集索引:
彙集索引基於數據行的鍵值,在表內排序和存儲這些數據行。每一個表只能有一個彙集索引,應爲數據行本分只能按一個順序存儲。
在彙集索引中,表中各行的物理順序與索引鍵值的邏輯(索引)順序相同。彙集索引一般可加快UPDATE和DELETE操做的速度,由於這兩個操做須要讀取 大量的數據。建立或修改彙集索引可能要花很長時間,由於執行這兩個操做時要在磁盤上對錶的行進行重組。 www.2cto.com
非彙集索引:
由於一個表中只能有一個彙集索引,若是須要在表中創建多個索引,則能夠建立爲非彙集索引。表中的數據並不按照非彙集索引列的順序存儲,但非彙集索引的索引行中保存了非彙集鍵值和行定位器,能夠快捷地根據非彙集鍵的值來定位記錄的存儲位置。
不管是彙集索引,仍是非彙集索引,均可以是惟一索引。在SQL Server中,當惟一性是.數據自己的特色時,可建立惟一索引,但索引列的組合不一樣於表的主鍵。例如,若是要頻繁查詢表Employees(該表主鍵爲 列Emp_id)的列Emp_name,並且要保證姓名是惟一的,則在列Emp_name上建立惟一索引。若是用戶爲多個員工輸入了相同的姓名,則數據庫 顯示錯誤,而且不能保存該表。