oracle的pk和主索引有什麼不同

oracle

問題:pk就是primary key,主索引就是create index

雖然都是索引但它們哪裡不同了?

既然有了pk那為什麼還需要create index

大概什麼場合會用到.

-------------------------------------------------------------------------------------

index 一般分 3 種,
Primary Key (主鍵或是主索引)
Unique Index (唯一索引)
Regular Index (一般索引)

pk (primary key) 也就是主鍵或是主索引,
一個 table 只可以有一個,
而且設定主索引的欄位必須是唯一不能重複, 如國民身分證號碼,

而設定 unique index 的欄位也需要是唯一,
跟主索引最大的差別就是 unique index 可以有很多個

Regular Index 就是最普通的index, 可以有許多個,
也不需要保證資料的唯一性,
主要的目的就單單是加快查詢的速度.

簡單範例
如某國的國民資料, 假設這個 table 裡面有,

身分證字號
姓名
性別
出生地
居住地
電話

可以用身分證字號當作主鍵, 因為那絕對是唯一,
另外也可以針對不同的查詢方式建立多組 index,
要針對出生地與性別作查詢, 就在出生地與性別上建 index,
要針對姓名與居住地作查詢, 就在姓名與居住地上建 index

建立索引的目的是在加快查詢的速度,
因此Index的建立是需要針對查詢的需求來建立的,
欄位越多的 table, 或是查詢需求越複雜系統,
普遍來說所需要的 index 就會越多

 

以上內容參考自

http://tw.knowledge.yahoo.com/question/question?qid=1507042007129

 

 

文章簽名檔