天天看點

資料庫基礎知識六:限制與索引

限制

全稱完整性限制,它是關系資料庫中的對象,用來存放插入到一個表中一列資料的規則,用來確定資料的準确性和一緻性。

可以在建立表時規定限制,或者在表建立之後。

限制的種類:

NOT NULL (非空限制):

非空限制強制列不接受 NULL 值。

UNIQUE (唯一限制):

唯一性限制用來限制不受主鍵限制的列上的資料的唯一性,

每個表可以有多個 唯一 限制,但是每個表隻能有一個主鍵限制。

主鍵限制不允許出現NULL值。但唯一限制允許包含NULL值

唯一限制把兩個NULL值當作重複值,是以施加了唯一限制的列隻允許包含一個空值

可以使用多個字段建立唯一限制.

PRIMARY KEY (主鍵限制):

主鍵 擁有自動定義的 UNIQUE 限制

主鍵 唯一辨別資料庫表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 NULL 值

FOREIGN KEY (外鍵限制):

一個表中的 外鍵 指向另一個表中的 主鍵

外鍵 限制用于預防破壞表之間連接配接的動作。

外鍵 限制也能防止非法資料插入外鍵列,因為它必須是它指向的那個表中的值之一。

CHECK (檢查限制):

CHECK 限制用于限制列中的值的範圍。

DEFAULT(預設值限制):

預設值限制用于向列中插入預設值。

在插入資料時若沒有設定包含預設值限制的列,那麼會将預設值添加到該記錄

索引

1:索引是關系型資料庫中給資料庫表中一列或多列的值排序後的存儲結構,資料庫中用的最頻繁的操作是資料查詢,索引就是為了加速表中資料行的檢索而建立的一種分散的資料結構。可以把索引類比成書的目錄。

2:在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查找資料,實作資料查詢的優化。

3:可以建立包含多個字段的索引,也可以在一個表上建立多個索引。

4:更新一個包含索引的表需要比更新一個沒有索引的表更多的時間,這是由于索引本身也需要更新。是以,理想的做法是僅僅在常常被搜尋的列上面建立索引

唯一索引

唯一是指索引的鍵值唯一,不是指一個表隻能有一個唯一索引

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

限制與索引

概念上不同,限制是為了保證資料的完整性,索引是為了輔助查詢。

唯一性限制與唯一索引有所不同:

1:限制作用于表上的某一列,索引可由多列組成。

2:建立唯一限制時,會自動的建立唯一索引(為了保證沒有重複值,在插入新記錄時會再檢索一遍,怎樣檢索快,當然是建索引了,是以,在建立唯一限制的時候就建立了唯一索引)。也就是說其實唯一限制是通過建立唯一索引來實作的。

3:建立唯一索引隻會建立一個唯一索引,不會建立限制。

4:在删除時這兩者也有一定的差別:删除唯一限制時可以隻删除限制而不删除對應的索引,是以對應的列還是必須唯一的,而删除了唯一索引的話就可以插入不唯一的值。

繼續閱讀