全稱完整性約束,它是關聯式資料庫中的物件,用來存放插入到乙個表中一列資料的規則,用來確保資料的準確性和一致性。
可以在建立表時規定約束,或者在表建立之後。
約束的種類:
not null (非空約束):
非空約束強制列不接受 null 值。
unique (唯一約束):
唯一性約束用來限制不受主鍵約束的列上的資料的唯一性,
每個表可以有多個 唯一 約束,但是每個表只能有乙個主鍵約束。
主鍵約束不允許出現null值。但唯一約束允許包含null值
唯一約束把兩個null值當作重複值,所以施加了唯一約束的列只允許包含乙個空值
可以使用多個字段建立唯一約束.
primary key (主鍵約束):
主鍵 擁有自動定義的 unique 約束
主鍵 唯一標識資料庫表中的每條記錄。
主鍵必須包含唯一的值。
主鍵列不能包含 null 值
foreign key (外來鍵約束):
乙個表中的 外來鍵 指向另乙個表中的 主鍵
外來鍵 約束用於預防破壞表之間連線的動作。
外來鍵 約束也能防止非法資料插入外來鍵列,因為它必須是它指向的那個表中的值之一。
check (檢查約束):
check 約束用於限制列中的值的範圍。
default(預設值約束):
預設值約束用於向列中插入預設值。
在插入資料時若沒有設定包含預設值約束的列,那麼會將預設值新增到該記錄
1:索引是關係型資料庫中給資料庫表中一列或多列的值排序後的儲存結構,資料庫中用的最頻繁的操作是資料查詢,索引就是為了加速表中資料行的檢索而建立的一種分散的資料結構。可以把索引模擬成書的目錄。
2:在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查詢資料,實現資料查詢的優化。
3:可以建立包含多個欄位的索引,也可以在乙個表上建立多個索引。
4:更新乙個包含索引的表需要比更新乙個沒有索引的表更多的時間,這是由於索引本身也需要更新。因此,理想的做法是僅僅在常常被搜尋的列上面建立索引
唯一索引
唯一是指索引的鍵值唯一,不是指乙個表只能有乙個唯一索引
唯一索引可以確保任何生成重複鍵值的嘗試都會失敗
概念上不同,約束是為了保證資料的完整性,索引是為了輔助查詢。
唯一性約束與唯一索引有所不同:
1:約束作用於表上的某一列,索引可由多列組成。
2:建立唯一約束時,會自動的建立唯一索引(為了保證沒有重複值,在插入新記錄時會再檢索一遍,怎樣檢索快,當然是建索引了,所以,在建立唯一約束的時候就建立了唯一索引)。也就是說其實唯一約束是通過建立唯一索引來實現的。
3:建立唯一索引只會建立乙個唯一索引,不會建立約束。
4:在刪除時這兩者也有一定的區別:刪除唯一約束時可以只刪除約束而不刪除對應的索引,所以對應的列還是必須唯一的,而刪除了唯一索引的話就可以插入不唯一的值。
資料庫索引基礎知識
索引是對資料表中的一列或多列的值進行排序的一種結構,使用索引可以快速訪問資料表中的特定資訊。索引的主要目的是加快檢索表中的資料,唯一索引 不允許任何兩行具有相同索引值的索引 主鍵索引 資料表中經常有一列或者多列組合,其值唯一標識表中的每一行 聚集索引 表中行的物理順序與鍵值的邏輯順序相同。乙個表中只...
資料庫索引基礎知識整理
一 索引 1.索引主要分 主鍵索引 唯一索引 普通索引 全文索引 2.建立索引的目的 加快表的查詢和排序 3.建立索引方法 1 create index 索引名 on 表名 列表名 2 alter table 表名 add index 索引名 列表名 3 create table 表名 index ...
資料庫基礎知識(二)索引儲存
sqlserver中使用頁為儲存單元的,那麼在建立索引時,其索引節點就是頁了,然後樹的鍵值就是存放到這些頁 節點 中的。就是說表中的資料行就是存放到頁上的,乙個表有多個頁構成,這些頁以樹的結構存放。如下圖為聚集索引的儲存結構 來自網路 其中可以看出頁有兩種 index rows 索引頁 data r...