mysql的五大約束 資料庫的三大正規化以及五大約束

2021-10-22 09:49:21 字數 1678 閱讀 2510

資料庫的三大特性可謂是:實體屬性和關係。

實體:表; 屬性:表中的資料(字段); 關係:表與表之間的關係;

第一正規化(1nf):資料表中的每一列(每個字段)必須是不可拆分的最小單元,也就是確保每一列的原子性;

例如:userinfo:山東省煙台市  131777368781           userads:山東0省煙台市  usertel:131777368781

第二正規化(2nf):滿足1nf後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說乙個表只描述一件事情;

例如:訂單表只描述訂單相關的資訊,所以所有欄位都必須與訂單id相關       產品表只描述產品相關的資訊,所以所有欄位都必須與產品id相 關;因此不能在一張表中同時出現訂單資訊與產品資訊;如下圖所示:

【如何更好的區分三大正規化】

第 一正規化和第二正規化在於有沒有分出兩張表,第二正規化是說一張表中包含了所種不同的實體屬性,那麼要必須分成多張表, 第三正規化是要求已經分成了多張表,那麼一張表中只能有另一張表中的id(主鍵),而不能有其他的任何資訊(其他的資訊一律用主鍵在另一表查詢)。

【資料庫五大約束】

1.primary key:設定主鍵約束;

2.unique:設定唯一性約束,不能有重複值;

3.default 預設值約束,height double(3,2)default 1.2 height不輸入是預設為1,2

4.not null:設定非空約束,該欄位不能為空;

5.foreign key :設定外來鍵約束。

【主鍵】

1.主鍵的注意事項?

主鍵預設非空,預設唯一性約束,只有主鍵才能設定自動增長,自動增長一定是主鍵,主鍵不一定自動增長;

2.設定主鍵的方式?

在定義列時設定:id int primary key

在列定義完之後設定:primary key(id)

【外來鍵】

1.設定外來鍵的注意事項:

只有innodb的資料庫引擎支援外來鍵,修改my.ini檔案設定default-storage-engine=innodb    外來鍵必須與參照列的資料型別必須相同(數值型要求長度和無符號都相同,字串要求型別相同,長度可以不同)。

2設定外來鍵的語法:

constraint 外鍵名 foreign key (外來鍵字段)references 參照表 (參照字段)    on delete set null on update cascade 設定參照完整性

3.外來鍵約束的參照操作?

參照表的完整性操作:當對參照表的參照字段進行刪除或更新時,外來鍵表中的外來鍵如何應對;

參照操作可選值:

restrict拒絕參照表刪除或更新參照字段;

restrict和no action相同,但這個指令只在mysql生效;

cascade刪除或更新參照表的參照欄位時,外來鍵表的記錄同步刪除更新;

set null 刪除或更新參照表的參照欄位時,外來鍵表的外來鍵設為null;

資料庫五大約束

所謂約束,其實就是一種保障,比如乙個屬性新增了主鍵約束,那麼就強制保障了它的唯一性和非空性,請帶著這樣正確的理解去閱讀後文。資料庫有五大約束,分別是 主鍵約束的要求是 唯一,非空 因此主鍵不需要 也不能再設定唯一約束了。另外,主鍵可以設定自動增長,而且,主鍵不一定是自動增長的,但自動增長的一定是主鍵...

資料庫五大約束

資料庫中的五種約束 資料庫中的五種約束及其新增方法 五大約束 1.主鍵約束 primay key coustraint 唯一性,非空性 2.唯一約束 unique counstraint 唯一性,可以空,但只能有乙個 3.檢查約束 check counstraint 對該列資料的範圍 格式的限制 如...

11 資料庫的五大約束

資料庫五大約束 資料庫中的五種約束及其新增方法 五大約束 1.主鍵約束 primay key coustraint 唯一性,非空性 設定主鍵約束 2.唯一約束 unique counstraint 唯一性,可以空,但只能有乙個 設定唯一性約束,不能有重複值 3.檢查約束 check counstra...