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相同
♦表級約束和列級約束
-- 對一個數據建立的約束,稱爲列級約束
-- 對多個數據建立的約束,稱爲表級約束
-- 列級約束既可以在列定義是聲明,也可以在列定義後聲明
-- 表級約束值能在列定義後聲明
--約束可以保證數據的完整性和一致性
--約束分爲表級約束和列級約束
約束的類型
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相同
♦表級約束和列級約束
-- 對一個數據建立的約束,稱爲列級約束
-- 對多個數據建立的約束,稱爲表級約束
-- 列級約束既可以在列定義是聲明,也可以在列定義後聲明
-- 表級約束值能在列定義後聲明
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.