資料庫的三大範式以及五大約束
數 據 庫
今天小編來講一下資料庫的相關知識點,資料庫的三大特性可謂是:實體屬性和關係。
實體:表; 屬性:表中的數據(欄位); 關係:表與表之間的關係;
資料庫設計三大範式(重點):
第一範式(1NF):數據表中的每一列(每個欄位)必須是不可拆分的最小單元,也就是確保每一列的原子性;
例如:userInfo:山東省煙台市 131777368781 userAds:山東0省煙台市 userTel:131777368781
第二範式(2NF):滿足1NF後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說一個表只描述一件事情;
例如:訂單表只描述訂單相關的信息,所以所有欄位都必須與訂單id相關 產品表只描述產品相關的信息,所以所有欄位都必須與產品id相 關;因此不能在一張表中同時出現訂單信息與產品信息;如下圖所示:
第三範式(3NF):必須先滿足第二範式(2NF),要求:表中的每一列只與主鍵直接相關而不是間接相關,(表中的每一列只能依賴於主鍵);
例如:訂單表中需要有客戶相關信息,在分離出客戶表之後,訂單表中只需要有一個用戶id即可,而不能有其他的客戶信息。因為其他的客戶信息直接關聯於用戶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;
感覺不錯!手動點贊鼓勵一下!!!
※用PHP和Ajax進行前後台數據交互——以用戶登錄為例
※一種解決HTTP抓取網頁超時設置無效的方法
※Java Class文件學習
※Java集合-ArrayList
※懵懂oracle之存儲過程2
TAG:科技優家 |
※新零售改造五大操作範式
※第四範式完成B+輪融資,三大國有銀行入股
※第四範式完成B+輪融資,四大國有銀行入股
※數字貨幣投資的新範式
※鎂客網每周硬科技領域投融資匯總,第四範式成「五大行」聯合投資唯一創企
※本周第四範式成「五大行」聯合投資唯一創企
※當下的三種投資分析範式
※第四範式完成C輪10億元融資,為「五大行」聯合投資的唯一創企
※AI創業公司融資新記錄,三大國有銀行共同投資第四範式
※中國特色新型智庫的大數據研究範式變革
※第四範式戴文淵赴約亞布力論壇:AI在綠色金融領域大有可為
※第四範式陳雨強:AI在中國能產生更大爆發力
※不同經濟周期內,投資的範式轉移
※大數據開創教學科研新範式
※零壹新金融日報:江西省就網貸備案指引二次徵求意見;三大國有銀行入股AI公司第四範式
※復仇的兩種範式
※TROY,加密資產新範式下的基礎設施
※技術分析:資料庫範式那些事
※世界經濟碎片化的風險在加大,下一個經濟學範式在哪?
※第四範式聯合港科大提出樣本自適應在線卷積稀疏編碼