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