MySQL約束簡介

約束能保證數(shù)據(jù)的完整性和一致性。
約束類型:主鍵約束、唯一約束、非空約束、默認約束、外鍵約束

主鍵約束(PRIMARY KEY)

自動編號(AUTO_INCREMENT)

  • 適用范圍:整型,小數(shù)位數(shù)是0的浮點型
  • 自動編號必須與主鍵組合使用(主鍵不一定和它一起使用)
  • 默認情況下,起始值為1,每次的增量為1

主鍵用于唯一地標識表中的每一條記錄,可以定義一列或多列為主鍵。(單一主鍵和復合主鍵)

  • 每張數(shù)據(jù)表只能存在一個主鍵
  • 主鍵保證記錄的唯一性
  • 主鍵自動為NOT NULL
  • 自動編號必須和主鍵一起使用

唯一約束(UNIQUE KEY)

唯一約束保證在一個字段或者一組字段里的數(shù)據(jù)與表中其它行的數(shù)據(jù)相比是唯一的。

  • 唯一約束可以保證記錄的唯一性
  • 唯一約束的字段可以為空值
  • 每張數(shù)據(jù)表可以存在多個唯一約束

非空約束(NOT NULL)

非空約束即限制必須為某個列賦值。

默認約束(DEFAULT)

當插入記錄時,沒有明確的為字段賦值,則自動賦予默認值。

外鍵約束(FOREIGN KEY)

FPREIGN KEY(子表外鍵名) REFERENCES 父表名(父表參照字段)

  • 父表和子表必須使用相同的存儲引擎,禁止使用臨時表。
  • 數(shù)據(jù)表的存儲引擎只能為InnoDB。
  • 外鍵列和參照列必須具有相似的數(shù)據(jù)類型。數(shù)字的長度或是否有符號位必須相同,但是字符的長度可以不同。
  • 外鍵列和參照列必須創(chuàng)建索引。如果外鍵列不存在索引,MySQL將自動創(chuàng)建索引。

外鍵約束的參照操作

FOREIGN KEY(子表外鍵名) REFERENCES tb_name(父表參照字段) [ON DELETE CASCADE]

  • CASCADE:從父表刪除或更新行,則自動刪除或更新子表中的匹配行
    刪除主表時自動刪除從表。刪除從表,主表不變。
    更新主表時自動更新從表。更新從表,主表不變。
  • SET NULL:父表刪除或更新行,并設置子表中的外鍵列為NULL。如果使用該選項,必須保證子表的外鍵列沒有指定為NOT NULL
    刪除主表時自動更新從表值為NULL。刪除從表,主表不變。
    更新主表時自動更新從表值為NULL。更新從表,主表不變。
  • RESTRICT(NO ACTION):拒絕對父表的刪除或更新操作
    當從表記錄不存在,主表才能刪除。刪除從表,主表不變。
    當從表記錄不存在,主表才能更新。更新從表,主表不變。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1、MySQL啟動和關閉(安裝及配置請參照百度經驗,這里不再記錄。MySQL默認端口號:3306;默認數(shù)據(jù)類型格式...
    強壯de西蘭花閱讀 758評論 0 1
  • SQL語言基礎 本章,我們將會重點探討SQL語言基礎,學習用SQL進行數(shù)據(jù)庫的基本數(shù)據(jù)查詢操作。另外請注意本章的S...
    厲鉚兄閱讀 5,457評論 2 46
  • 記的小時候媽總是往田里跑不愛做家務,媽媽干起地里的活來可快可麻利了,父親腿有點不好,小時候落下的毛病,所以家里的重...
    梅蘭竹菊修身養(yǎng)性閱讀 282評論 0 0
  • 今晚結束以后,就是一個新的我開始了。所以今晚吃得特別特別飽,以后記住了這種飽的感覺,以后再也不允許自己吃這樣飽了。...
    大大的小小啊閱讀 176評論 0 0
  • 元寶現(xiàn)在每回出去玩,乘電梯回家,出電梯門時他都會和還在電梯里的人揮手拜拜,同小朋友告別也會揮手拜拜,很有禮貌。如果...
    中括號閱讀 207評論 0 0

友情鏈接更多精彩內容