程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫唯一約束和唯一索引的區別詳解

Oracle數據庫唯一約束和唯一索引的區別詳解

編輯:Oracle數據庫基礎

Oracle數據庫唯一約束唯一索引的區別是本文我們主要介紹的內容,在使用TOAD來操作Oracle數據庫時,會注意到創建約束時有Primary Key、Check、Unique和Foreign Key四種類型的約束,這與SQL Server中的約束沒有什麼區別,這裡的Check約束除了用於一般的Check約束外,在Oracle中也用於非空約束的實現。也就是說如果一個字段不允許為空,則系統將會創建一個系統的Check約束,該約束定了某字段不能為空。

Oracle數據庫唯一約束和唯一索引的區別詳解

除了約束,還有另外一個概念是索引,在TOAD中創建索引的界面如下:

Oracle數據庫唯一約束和唯一索引的區別詳解

我們可以注意到在唯一性組中有三個選項:不唯一、唯一和主鍵。那麼創建索引時的唯一、主鍵與創建約束時候的唯一約束和主鍵約束有什麼區別呢?

這裡的可能容易產生誤解,其實創建主鍵的結果是一樣的,不管是在創建約束時創建還是創建索引時創建,都會創建一個主鍵約束和對應的一個唯一索引。

創建唯一約束與創建唯一索引有所不同:

創建唯一約束會在Oracle中創建一個Constraint,同時也會創建一個該約束對應的唯一索引。

創建唯一索引只會創建一個唯一索引,不會創建Constraint。

也就是說其實唯一約束是通過創建唯一索引來實現的。對於前端開發人員來說這兩者有什麼區別嗎?好像沒有。都是不能插入重復的值。在刪除時這兩者也有一定的區別,刪除唯一約束時可以只刪除約束而不刪除對應的索引,所以對於的列還是必須唯一的,而刪除了唯一索引的話就可以插入不唯一的值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved