約束和索引

2021-06-27 02:29:10 字數 872 閱讀 8901

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。

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

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

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

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

約束和索引

作用 是為了保證資料的完整性而實現的摘自一套機制,它具體的根據各個不同的資料庫的實現而有不同的工具 約束 作用 快速定位特定資料,提高查詢效率,確保資料的唯一性,快速定位特定資料 可以加速表和表之間的連線,實現表與表之間的參照完整性,使用分組和排序語句進行資料檢索時,可以顯著減少分組和排序的時間全文...

mysql約束和索引

1 作用 保證資料的完整性 一致性 有效性 2 約束分類 1 預設約束 default 插入記錄,不給該字段賦值,則使用預設值 1 非空約束 not null 不允許該字段的值有null記錄 3 示例 create table t2 id int not null,name varchar 15 e...

Msql 約束和索引

3 主鍵約束分為兩種 4 刪除主鍵約束 第一種 在建立表時如何指定主鍵的約束?create table 資料庫名.表名稱 欄位名1 資料型別 primary key,欄位名2 資料型別,例如 在test資料庫中建立乙個t stu表 建立了主鍵,它作用的體現?例如 在表中插入兩條資料,其中資料中主鍵的...