關於資料庫的索引和約束

2021-08-18 05:22:42 字數 871 閱讀 8582

1.主鍵約束(primary key)

1) 主鍵用於唯一地標識表中的每一條記錄,可以定義一列或多列為主鍵。 

2) 是不可能(或很難)更新. 

3) 主鍵列上沒有任何兩行具有相同值(即重複值),不允許空(null).

4) 主健可作外健,唯一索引不可;

2.唯一性約束(unique)

1) 唯一性約束用來限制不受主鍵約束的列上的資料的唯一性,用於作為訪問某行的可選手段,乙個表上可以放置多個唯一性約束.

2) 只要唯一就可以更新. 

3) 即表中任意兩行在  指定列上都不允許有相同的值,

允許空(null).

4) 乙個表上可以放置多個唯一性約束

3.唯一索引(index)

建立唯一索引可以確保任何生成重複鍵值的嘗試都會失敗。

唯一性約束和主鍵約束的區別:

(1).唯一性約束允許在該列上存在null值,而主鍵約束的限制更為嚴格,不但不允許有重複,而且也不允許有空值。

(2).在建立唯一性約束和主鍵約束時可以建立聚集索引和非聚集索引,但在 預設情況下主鍵約束產生聚集索引,而唯一性約束產生非聚集索引

約束和索引, 前者是用來檢查資料的正確性,後者用來實現資料查詢的優化,目的不同。

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

(1).建立唯一約束會在oracle中建立乙個constraint,同時也會建立乙個該約束對應的唯一索引。

(2).建立唯一索引只會建立乙個唯一索引,不會建立constraint。

也就是說其實唯一約束是通過建立唯一索引來實現的。

在刪除時這兩者也有一定的區別:

刪除唯一約束時可以只刪除約束而不刪除對應的索引,所以對應的列還是必須唯一的,

而刪除了唯一索引的話就可以插入不唯一的值

索引和約束的刪除

建立主建約束和唯一約束時會自動建立同名索引。相關資料字典 user constraints,user indexes 使用下面命令刪除索引索引時,會提示錯誤。drop index table pk 這是可以刪除約束再刪除索引。alter table table drop constraint tab...

索引和約束的建立

學習彙總 持續更新 從零搭建後端基礎設施系列 一 背景介紹 1.索引 建立索引的語法 create index 索引名 on 表名 欄位1,欄位2,欄位n 例子 create index idx person name on person name create index idx person n...

索引和約束的區別

constraint 約束被 db2 universal database db2 udb 用來對資料業務規則和資料完整性進行實施 維護。約束的作用範圍僅限在當前資料庫,通過檢索 資料庫目錄 和 命令方式 select from user constraints 可以檢視到約束資訊。如果想方便 快捷...