主鍵與唯一性索引簡析

其實指定列的索引就相當於對指定的列進行排序,為什麼要排序呢?因為排序有利於對該列的查詢,可以大大增加查詢效率。(那麼可能有人認為應該對所有的列排序,這樣就可以增加整個數據庫的查詢效率?這樣的想法是錯誤的,原因是建立索引也是要消耗系統資源的,給每個表裡的每個列都建立索引那麼將對系統造成極大的負擔,那就更別提效率瞭!)———簡單的說建立一個列的索引,就相當與建立一個列的排序。 
 

主鍵其實就是一個索引,但是這個索引跟一般的索引有所不同,不同在於主鍵所在的列裡的每一個的記錄都是唯一的,也可以說不能在主鍵裡出現相同的記錄,在同一個表裡隻能有一個主鍵。(主鍵等於索引,索引不一定等於主鍵)———-簡單的說主鍵就是所在列不能出現相同記錄的特殊索引,而且這個索引隻能在表裡出現一次。

  www.aiwalls.com  

1.主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵;  

2.一個表中可以有多個唯一性索引,但隻能有一個主鍵;  

3.主鍵列不允許空值,而唯一性索引列允許空值。

  

主鍵在表中有唯一標識的作用,不可重復,不能為空;  

當其它表建立外鍵關聯當前表時,隻可以關聯主鍵。   

唯一索引,確切的說是唯一約束,   

create unique index index_id on(id); 

是用來限制當前表插入時建立唯一約束的字段不可重復。  

一個是做為唯一標識,先唯一後標識;   另一個是插入時做唯一限制。    
 

 

 

摘自 simonjay2007的專欄

發佈留言