|
1.主鍵約束(PRIMARY KEY) 1) 主鍵用于唯一地標(biāo)識(shí)表中的每一條記錄,可以定義一列或多列為主鍵。 2) 是不可能(或很難)更新. 3) 主鍵列上沒(méi)有任何兩行具有相同值(即重復(fù)值),不允許空(NULL). 4) 主健可作外健,唯一索引不可; 2.唯一性約束(UNIQUE) 1) 唯一性約束用來(lái)限制不受主鍵約束的列上的數(shù)據(jù)的唯一性,用于作為訪問(wèn)某行的可選手段,一個(gè)表上可以放置多個(gè)唯一性約束. 2) 只要唯一就可以更新. 3) 即表中任意兩行在 指定列上都不允許有相同的值,允許空(NULL). 4) 一個(gè)表上可以放置多個(gè)唯一性約束 3.唯一索引(INDEX) 創(chuàng)建唯一索引可以確保任何生成重復(fù)鍵值的嘗試都會(huì)失敗。 唯一性約束和主鍵約束的區(qū)別: (1).唯一性約束允許在該列上存在NULL值,而主鍵約束的限制更為嚴(yán)格,不但不允許有重復(fù),而且也不允許有空值。 (2).在創(chuàng)建唯一性約束和主鍵約束時(shí)可以創(chuàng)建聚集索引和非聚集索引,但在 默認(rèn)情況下主鍵約束產(chǎn)生聚集索引,而唯一性約束產(chǎn)生非聚集索引 約束和索引, 前者是用來(lái)檢查數(shù)據(jù)的正確性,后者用來(lái)實(shí)現(xiàn)數(shù)據(jù)查詢的優(yōu)化,目的不同。 唯一性約束與唯一索引有所不同: (1).創(chuàng)建唯一約束會(huì)在Oracle中創(chuàng)建一個(gè)Constraint,同時(shí)也會(huì)創(chuàng)建一個(gè)該約束對(duì)應(yīng)的唯一索引。 (2).創(chuàng)建唯一索引只會(huì)創(chuàng)建一個(gè)唯一索引,不會(huì)創(chuàng)建Constraint。 也就是說(shuō)其實(shí)唯一約束是通過(guò)創(chuàng)建唯一索引來(lái)實(shí)現(xiàn)的。 在刪除時(shí)這兩者也有一定的區(qū)別: 刪除唯一約束時(shí)可以只刪除約束而不刪除對(duì)應(yīng)的索引,所以對(duì)應(yīng)的列還是必須唯一的, 而刪除了唯一索引的話就可以插入不唯一的值。 |
|
|
來(lái)自: instl > 《database》