- Primary Key(主鍵):表中經常有一個列或列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵,通過它可強制表的實體完整性。
- 主鍵不允許空值。不能存在具有相同的主鍵值的兩個行,因此主鍵值總是唯一標識單個行。
- 表中可以有不止一個鍵唯一標識行,每個鍵都稱作候選鍵。只有一個候選鍵可以選作表的主鍵,所有其它候選鍵稱作備用鍵。盡管表不要求具有主鍵,但定義主鍵是很好的做法。
- 在規范化的表中,每行中的所有數據值都完全依賴于主鍵。例如,在以 EmployeeID 作為主鍵的規范化的employee 表中,所有列都應包含與某個特定職員相關的數據。該表不具有 DepartmentName 列,因為部門的名稱依賴于部門ID,而不是職員 ID。
- UNIQUE(唯一索引) :主鍵的一列或列組合。一個表可以定義多個UNIQUE 約束,而只能定義一個PRIMARY KEY約束。允許空值的列,允許空值的列上可以定義UNIQUE 約束,而不能定義PRIMARY KEY約束。FOREIGN KEY 約束也可引用 UNIQUE 約束。
- Clustered(:聚集索引)
在聚集索引中,表中各行的物理順序與索引鍵值的邏輯(索引)順序相同。表只能包含一個聚集索引。聚集索引通常可加快 UPDATE 和 DELETE 操作的速度,因為這兩個操作需要讀取大量的數據。創建或修改聚集索引可能要花很長時間,因為執行這兩個操作時要在磁盤上對表的行進行重組。可考慮將聚集索引用于:
- 包含數量有限的唯一值的列,如地區列只包含50個唯一的州代碼。
- 使用下列運算符返回一個范圍值的查詢:BETWEEN、>、>=、< 和 <=。
- 返回大結果集的查詢。
- NO Clustered(非聚集索引)
非聚集索引與課本中的索引類似。數據存儲在一個地方,索引存儲在另一個地方,索引帶有指針指向數據的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另一種順序存儲(這可以由聚集索引規定)。如果在表中未創建聚集索引,則無法保證這些行具有任何特定的順序。