- 本博客是《MySQL基礎》系列博客的第四部分,主要介紹表的完整性約束條件,重頭戲自然是主外鍵
- 本博客既爲方便自己查看複習而作,亦爲你而作,望能有所裨益
- 學習交流請聯繫 [email protected]
基本概念
表的完整性約束條件指的是一系列用來保證表的完整性、一致性、無重複性等特性的條件。
條件分類
在《MySQL基礎(二):基本操作》裏我們在創建表的時候已經順帶簡單介紹了其中一些條件,如下圖的相關設置即我們所說的表的完整性約束條件:
表的完整性約束條件
按鍵 | 說明 |
---|---|
PK | Primary Key,主鍵 |
NN | Not Null,非空 |
UQ | Unique,索引唯一 |
B | Binary,二進制 |
UN | 無符號 |
ZF | Zero Fill,零填充 |
AI | Auto Increment,自增,即從1開始每次遞增1 |
G | Generated,生成列 |
主鍵外鍵
我們平日常聽到表的主外鍵之說,那麼什麼是表的主外鍵呢?它們又是幹什麼的呢?下面我們就來簡單瞭解一下:
- 表的完整性約束主要是靠表的主外鍵來完成的,其基本概念如下表所示:
概念 | 定義 | 作用 | 個數 |
---|---|---|---|
主鍵 | 唯一標識一條記錄,不能有重複的,不允許爲空 | 保證數據完整性 | 只能有一個 |
外鍵 | 表的外鍵是另一表的主鍵,可重複,可爲空 | 和其他表建立聯繫 | 可以有多個 |
- 主外鍵用來連接不同的表,從而方便數據查詢,提高查詢效率
- 外鍵對事務的頻繁操作會影響性能,在高併發的數據庫系統中不適合添加外鍵
- 示例:
- Workbench操作
- SQL語句
- Workbench操作
alter table <數據庫>.<外數據表> add index <外鍵名>(外鍵字段); -- 添加外鍵
alter table <數據庫>.<外數據表> add constraint <外鍵名>
foreign key(<外鍵字段>) references <數據庫>.<主數據表>(<主鍵字段>)
on delete <相關操作> -- 相關操作可選 NO ACTION,SET NULL,CASCADE,RESTRICT
on update <相關操作>; -- 具體說明將在後面揭曉
其他條件
其他完整性約束條件應在實際業務中按需添加,只需要添加或修改關鍵字即可
具體可見:《MySQL基礎(六):DDL語句》