主鍵(PK)與非空唯一索引(Unique Index)的區別
從概念上將,這兩個屬於不同的範疇
主鍵是一種constraint ,它對應外來鍵是為了實現參照完整性而建立的(當然有時候主鍵沒有對應的外來鍵,用起來就相當於非空唯一索引) , 可以使用 select * from dba_constraints where constraint_type='P' ; 查詢到 。
他們兩個的聯絡估計可以這樣認為: 建立主鍵(PK,)時自動建立的索引和其他非空唯一索引有什麼區別? PK是一種約束, 而Index 是為了最佳化SQL執行效率而建立的一些Object , 概念上不屬於同一個範疇,使用目的不一樣,只是由於建立PK的時候一定會建立一個對應的唯一索引,所以使用起來和唯一Index 差不多 。
主鍵是一個或一組欄位,這些欄位上附屬了非空唯一索引這個物件; 而唯一索引就是依附於表的一些物件。
總結一下,區別有以下幾點 :
1、一個Table 只能有一個主鍵而可以有多個非空唯一索引; PK可以有外來鍵FK 。
2、對外的應用程式介面如ODBC或者JAVA中的Hibernate通常都是以主鍵來載入記錄
3、含非空唯一索引或唯一索引的列可以改成not unique, 而主鍵卻不能
4、執行計劃中會優先選擇主鍵
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-605315/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pk 、unique index 和 index 區別Index
- 【INDEX】Oracle中主鍵、唯一約束與唯一索引之區別IndexOracle索引
- Oracle主鍵、唯一鍵與唯一索引的區別Oracle索引
- 主鍵、自增主鍵、主鍵索引、唯一索引概念區別與效能區別索引
- 主鍵和唯一索引的區別索引
- 唯一性索引(Unique Index)與普通索引(Normal Index)差異(上)索引IndexORM
- 唯一性索引(Unique Index)與普通索引(Normal Index)差異(中)索引IndexORM
- 唯一性索引(Unique Index)與普通索引(Normal Index)差異(下)索引IndexORM
- 【唯一】DISTINCT與UNIQUE的“區別”
- Oracle主鍵約束、唯一鍵約束、唯一索引的區別(轉)Oracle索引
- unique index與primary key的區別Index
- 索引唯一性掃描(INDEX UNIQUE SCAN)索引Index
- 唯一索引和非唯一索引ROWID儲存的區別索引
- 唯一index和非唯一index中leaf node裡rowid的一點區別。Index
- indexedDB 索引與primarykey主鍵區別Index索引
- MYSQL中的普通索引,主健,唯一,全文索引區別MySql索引
- mysql中key 、primary key 、unique key 與index區別MySqlIndex
- 主鍵local索引、unique local索引、分割槽索引順序的理解索引
- 關於唯一性索引造成堵塞和非唯一性索引造成堵塞的區別索引
- 主鍵索引 (聚集索引) 和普通索引 (輔助索引) 的區別索引
- 【fk_index】外來鍵中有無索引的區別Index索引
- mysql索引型別Normal,Unique,Full Text區別以及索引方法Btree,Hash的區別MySql索引型別ORM
- 主鍵與主鍵索引的關係索引
- [轉]聚集索引和非聚集索引的區別索引
- 使用聚集索引和非聚集索引的區別索引
- 【PK】Oracle 10g刪除主鍵約束後無法刪除唯一約束索引問題的模擬與分析Oracle 10g索引
- 約束:確保資料的完整性(主鍵,唯一,檢查,預設,非空,外來鍵)
- Elasticsearch之索引模板index template與索引別名index aliasElasticsearch索引Index
- SQL Server 聚集索引和非聚集索引的區別SQLServer索引
- 唯一性約束和唯一性索引的區別索引
- 主題:Oracle中Null與空字串''''的區別OracleNull字串
- OGG How to handle / replicate tables with no (without) primary key (PK) or unique index (UI) (UPI) [IndexUI
- 【恩墨學院】空與非空 EMPTY_LOB和NULL的區別Null
- oracle index unique scan/index range scan和mysql range/const/ref/eq_ref的區別OracleIndexMySql
- 查詢(看)表的主鍵、外來鍵、唯一性約束和索引索引
- oracle invisible index與unusable index的區別OracleIndex
- ORACLE: 查詢(看)表的主鍵、外來鍵、唯一性約束和索引Oracle索引
- global index & local index的區別Index