日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库五大约束_数据库基础知识:数据库中的约束和三大范式

發布時間:2025/3/12 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库五大约束_数据库基础知识:数据库中的约束和三大范式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.數據庫中的范式:

范式,英文名稱是NormalForm,它是英國人E.F.Codd(關系數據庫的老祖宗)在上個世紀70年代提出關系數據庫模型后總結出來的,范式是關系數據庫理論的基礎,也是我們在設計數據庫結構過程中所要遵循的規則和指導方法,以下就是對這三個范式的基本介紹:

第一范式(1NF):

數據表中的每一列(字段),必須是不可拆分的最小單元,也就是確保每一列的原子性。

例如:userInfo:‘山東省煙臺市1318162008’依照第一范式必須拆分成

userInfo:‘山東省煙臺市’userTel:‘1318162008’兩個字段

第二范式(2NF):

滿足1NF后要求表中的所有列,都必需依賴于主鍵,而不能有任何一列與主鍵沒有關系(一個表只描述一件事情)。

例如:訂單表只能描述訂單相關的信息,所以所有的字段都必須與訂單ID相關。

產品表只能描述產品相關的信息,所以所有的字段都必須與產品ID相關。

因此在同一張表中不能同時出現訂單信息與產品信息。

第三范式(3NF):第三范式(3NF):滿足2NF后,要求:表中的每一列都要與主鍵直接相關,而不是間接相關(表中的每一列只能依賴于主鍵)

例如:訂單表中需要有客戶相關信息,在分離出客戶表之后,訂單表中只需要有一個用戶

ID即可,而不能有其他的客戶信息,因為其他的用戶信息是直接關聯于用戶ID,而不是關聯

于訂單ID。

注意事項:

1.第二范式與第三范式的本質區別:在于有沒有分出兩張表。

第二范式是說一張表中包含了多種不同實體的屬性,那么必須要分成多張表,第三范式是要求已經分好了多張表的話,一張表中只能有另一張標的ID,而不能有其他任何信息,(其他任何信息,一律用主鍵在另一張表中查詢)。

2.必須先滿足第一范式才能滿足第二范式,必須同時滿足第一第二范式才能滿足第三范式。

二:數據庫中的五大約束:

數據庫中的五大約束包括:

1.主鍵約束(PrimayKeyCoustraint)唯一性,非空性;

2.唯一約束(UniqueCounstraint)唯一性,可以空,但只能有一個;

3.默認約束(DefaultCounstraint)該數據的默認值;

4.外鍵約束(ForeignKeyCounstraint)需要建立兩表間的關系;

5.非空約束(?NotNull?Counstraint?):設置非空約束,該字段不能為空。

詳細介紹:

(1)[外鍵約束?(ForeignKeyCounstraint)?]

1.設置外鍵的注意事項:

①:只有INNODB的數據庫引擎支持外鍵,修改my.ini文件設置default-storage-engine=INNODB;

②:外鍵與參照列的數據類型必須相同。(數值型要求長度和無符號都相同,字符串要求類型相同,長度可以不同);

③:設置外鍵的字段必須要有索引,如果沒有索引,設置外鍵時會自動生成一個索引;

2.設置外鍵的語法:

[CONSTRAINT外鍵名]FOREIGNKEY(外鍵字段)REFERENCES參照表(參照字段);

[ONDELETESETNULLONUPDATECASCADE]—設置操作完整。

3、外鍵約束的參照操作:

當對參照表的參照字段進行刪除或更新時,外鍵表中的外鍵如何應對。

參照操作可選值:

RESTRICT:拒絕對參照字段的刪除或修改(默認);

NOACTION:與RESTRICT相同,但這個指令只在MySql生效;

CASCADE:?刪除或更新參照表的參照字段時,外鍵表的記錄同步刪除或更新;

SETNULL:刪除刪除或更新參照表的參照字段時,外鍵表的外鍵設為NULL(此時外鍵不能設置為NOTNULL)。

(2)[主鍵約束]?(PrimayKeyCoustraint)

1.主鍵的注意事項:主鍵默認非空,默認唯一性約束,只有主鍵可以設置自動增長(主鍵不一定自增,自增一定是主鍵)。

2.設置主鍵的方式:

①:在定義列時設置:id???INTUNSIGNEDPRIMARYKEY。

②:在列定義完成后設置:PRIMARYKEY(id)。

其他約束沒有特殊要求因此不做解釋。

總結

以上是生活随笔為你收集整理的mysql数据库五大约束_数据库基础知识:数据库中的约束和三大范式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。