MYSQL的學習筆記-----MYSQL的約束

約束
  --約束可以保證數據的完整性和一致性
  --約束分爲表級約束和列級約束

約束的類型
 1、空值與非空值
    NULL,字段值可以爲空
    NOT NULL,字段值禁止爲空
 2、AUTO_INCREMENT
    --自動編號,並且必須與主鍵組合使用
    --默認情況下,其開始值爲1,每次的增量爲1
 3、PRIMARY KEY
    --主鍵約束
    --每張數據表只能存在一個主鍵
    --逐漸保證記錄的唯一性
    --主鍵自動爲 NOT NULL
4、UNIQUE KEY
   -- 唯一約束
   --唯一約束可以保證記錄的唯一性
   --唯一約束的字段的可以爲空值
   --每張表可以存在多個唯一約束
5、DEFAULT
   --默認值
   --當插入記錄時,如果沒有明確的爲字段賦值,則自動賦予默認值
6、FOREIGN KEY
    --外鍵約束
    --保持數據的一致性,完整性
    --實現一對一的或一對多的關係

 ♦外鍵約束的要求
 (1)父表和字表必須使用相同的存儲引擎,而且禁止使用臨時表
 (2)數據標的存儲引擎必須是InnoDB
  (3)外鍵列和參照列必須具有相似的數據類型,其中數字的長度或是否有符號位必須相同;而字符的長度則可以不同
 (4)外鍵列和參照列必須創建索引,如果外鍵列不存在索引的話,MYSQLj將會自動創建索引

 ♦編輯數據表的默認存儲引擎
   --MYSQL配置文件
      default-storage-engine INNODB

♦外鍵約束的參照操作
 (1)CASCADE:從父表刪除或更新並且自動刪除或更新字表中的匹配的行
 (2)SET NULL :從父表刪除或更新行,並設置字表中的外鍵列爲NULL.如果使用該選項,必須保證字表沒有指定NOT NULL
  (3)RESTRICT :拒絕對父表的刪除或更新操作
 (4)NO ACTION :標準SQL的關鍵字,在MYSQL中雨RESTRICT相同

♦表級約束和列級約束
 -- 對一個數據建立的約束,稱爲列級約束
 -- 對多個數據建立的約束,稱爲表級約束
 -- 列級約束既可以在列定義是聲明,也可以在列定義後聲明
 -- 表級約束值能在列定義後聲明

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