Oracle數據庫唯一約束和唯一索引的區別詳解
Oracle數據庫***約束和***索引的區別是本文我們主要介紹的內容,在使用TOAD來操作Oracle數據庫時,會注意到創建約束時有Primary Key、Check、Unique和Foreign Key四種類型的約束,這與SQL Server中的約束沒有什么區別,這里的Check約束除了用于一般的Check約束外,在Oracle中也用于非空約束的實現。也就是說如果一個字段不允許為空,則系統將會創建一個系統的Check約束,該約束定了某字段不能為空。
除了約束,還有另外一個概念是索引,在TOAD中創建索引的界面如下:
我們可以注意到在***性組中有三個選項:不***、***和主鍵。那么創建索引時的***、主鍵與創建約束時候的***約束和主鍵約束有什么區別呢?
這里的可能容易產生誤解,其實創建主鍵的結果是一樣的,不管是在創建約束時創建還是創建索引時創建,都會創建一個主鍵約束和對應的一個***索引。
創建***約束與創建***索引有所不同:
創建***約束會在Oracle中創建一個Constraint,同時也會創建一個該約束對應的***索引。
創建***索引只會創建一個***索引,不會創建Constraint。
也就是說其實***約束是通過創建***索引來實現的。對于前端開發人員來說這兩者有什么區別嗎?好像沒有。都是不能插入重復的值。在刪除時這兩者也有一定的區別,刪除***約束時可以只刪除約束而不刪除對應的索引,所以對于的列還是必須***的,而刪除了***索引的話就可以插入不***的值。
關于Oracle數據庫***約束和***索引的區別就介紹到這里了,希望本次的介紹能夠對您有所收獲!
【編輯推薦】