MySQL基礎(四):表的完整性約束

  • 本博客是《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語句
alter table <數據庫>.<外數據表> add index <外鍵名>(外鍵字段); -- 添加外鍵
alter table <數據庫>.<外數據表> add constraint <外鍵名>
foreign key(<外鍵字段>) references <數據庫>.<主數據表>(<主鍵字段>)
on delete <相關操作>  -- 相關操作可選 NO ACTION,SET NULL,CASCADE,RESTRICT
on update <相關操作>; -- 具體說明將在後面揭曉

其他條件

其他完整性約束條件應在實際業務中按需添加,只需要添加或修改關鍵字即可
具體可見:《MySQL基礎(六):DDL語句》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章