在使用toad來操作oracle資料庫時,會注意到建立約束時有primary key、check、unique和foreign key四種型別的約束,這與sql server中的約束沒有什麼區別,這裡的check約束除了用於一般的check約束外,在oracle中也用於非空約束的實現。也就是說如果乙個欄位不允許為空,則系統將會建立乙個系統的check約束,該約束定了某欄位不能為空。
除了約束,還有另外乙個概念是索引,在toad中建立索引的介面如下:
我們可以注意到在唯一性組中有三個選項:不唯
一、唯一和主鍵。那麼建立索引時的唯
一、主鍵與建立約束時候的唯一約束和主鍵約束有什麼區別呢?
這裡的可能容易產生誤解,其實建立主鍵的結果是一樣的,不管是在建立約束時建立還是建立索引時建立,都會建立乙個主鍵約束和對應的乙個唯一索引。
建立唯一約束與建立唯一索引有所不同:
也就是說其實唯一約束是通過建立唯一索引來實現的。對於前端開發人員來說這兩者有什麼區別嗎?好像沒有。都是不能插入重複的值。在刪除時這兩者也有一定的區別,刪除唯一約束時可以只刪除約束而不刪除對應的索引,所以對於的列還是必須唯一的,而刪除了唯一索引的話就可以插入不唯一的值。
初學oracle個人淺薄之見,若有錯,還望大家見諒。
oracle 唯一約束 和 唯一索引
唯一性約束 唯一性約束指表中乙個字段或者多個字段聯合起來能夠唯一標識一條記錄的約束。聯合欄位中,可以包含空值。注 在oracle中,唯一性約束最多可以有32列。唯一性約束可以在建立表時或使用alter table語句建立。唯一性約束和主鍵的區別 主鍵 primary key 所有組成主鍵的列都不能包...
MySQL 新增唯一約束和聯合唯一約束
在mysql資料庫中,經常會碰到由於業務需要新增唯一鍵約束,唯一鍵約束,可以在乙個列上新增約束,也可以在多個列上新增唯一約束。1.建表時加上唯一性約束 create table t user id int 11 notnull auto increment username varchar 18 n...
唯一約束和檢查約束(oracle)
1.唯一約束和主鍵區別 主鍵字段值必須是非空的 唯一約束允許有乙個空值 2.唯一約束關鍵字 unique 3.在建立表時設定唯一約束 constraint constraint name unique column name 4.在修改表新增唯一約束 add constraint constrain...