天天看點

mysql支援關系模型中哪些完整性限制_資料完整性限制(1)——實體完整性、參照完整性...

一.資料完整性的分類

在關系模型中,提供了實體完整性,參照完整性,使用者定義完整性。

二.實體完整性

2.1什麼是實體?

實體是一個資料對象,指的是客觀存在并可以互相區分的事物,比如學生,老師等。一個實體在資料庫中對應的是一條記錄。

2.2實體完整性在MySQL中實作

實體完整性在MySQL中的實作是通過主鍵限制和候選鍵限制實作的。

2.2.1主鍵限制

首先,我們來了解一下主鍵是什麼:主鍵是表中的某一列或者多個列的組合。多個列就是複合主鍵。

在MySQL中的主鍵必須保證一下幾個要求:

1.一個表隻能有一個主鍵,主鍵可以複合但是隻有一個。

2.唯一性,主鍵的值在一張表裡面是不能重複是唯一的,而且不能為空。

3.最小化原則,當一個複合主鍵删除掉複合的某一行後如果這個主鍵還是複合的,那麼就是代表原來那個複合主鍵沒有滿足最小化原則。

2.2.2實作主鍵

使用關鍵字:primary key

方式一:單列主鍵

create table tb(

tb_pkintprimary key

);

方式二:複合主鍵

create tabletb(

tb_idint,

tb_namevarchar(10),primary key(tb_id,tb_name)

);

2.2.3候選鍵限制

如果一張表中的某一個列可以唯一辨別這張表,又不含其他多于的屬性,那麼他就是一個候選鍵。比如學生的學号。

同樣的候選鍵也是非空并且唯一值,候選鍵也支援複合。

2.2.4候選鍵與主鍵鍵

表中主鍵隻有一個但是候選鍵可以擁有多。

兩者都會建立索引,主鍵是priamry key索引,但是候選鍵是unique索引

2.2.5實作候選鍵

使用關鍵字unique:

create tabletb(

tb_idint,

tb_namevarchar(10),unique(tb_id,tb_name)

);

三.參照完整性

在現實世界中存在多個對應的關系,那麼這個對應關系就是參照完整性,也就是MySQL中的外鍵。

3.1參照完整性的定義為(圖解):

mysql支援關系模型中哪些完整性限制_資料完整性限制(1)——實體完整性、參照完整性...

3.2參照的完整性文法

關鍵字:foreign key

文法:

foreign  key   (本身表的列)  references

從表表名(從表的主鍵)

on delete restrict  |  cascade  |  set  null  |  no   action

on update restrict  |  cascade  |  set  null  |  no   action

restrict:删除或者更新時,在外間中出現的值操作失敗

cascade:将外鍵的值一同删除或者更新

set null :删除更新時外鍵的值被設定為空

例子首先說明有兩張表:

create tabletb(

tb_idint,

tb_namevarchar(10),foreign key (tb_id) references tb1(tb_id) on delete cascade on update cascade);create tabletb1(

tb_idint primary key,

tb_namevarchar(10),unique(tb_id,tb_name)

);

3.3注意點

1.首先從表必須是存在的。

2.從表必須是主鍵被參照

原文:https://www.cnblogs.com/SAM-CJM/p/9703536.html