mysql 之 sql 語句 之 多表外鍵

我們通過主表的主鍵和從表的外鍵描述主外建的關係,呈現就是一對多的關係。

例如:

1.創建一個主表(動物)  設置(Aid)爲主鍵

create table Animal(
Aid int(32) primary key auto_increment,
Aname varchar(32)
);

2.給主表添加數據

insert into Animal values(null,'哺乳動物');
insert into Animal values(null,'魚類');
insert into Animal values(null,'鳥類');

3.查看一下 Animal 表



4.創建一個從表 (動物們) 設置(key_Aid)爲從鍵

create table animals(
aid int(32) primary key auto_increment,
aname varchar(32),
key_Aid int(32)
);


5.設置主從表連接

語法: alter table 從表 add[constraint] [外鍵名稱] froeign key(從鍵) references 主表(主鍵)

alter table animals add foreign key(key_Aid) references Animal(Aid);


已經連接成功了 ,

1.插入從表數據的時候 必須要 外鍵的值 是主表裏存在的

例如:

情況1:


情況2:


2.如果主表想刪除 主鍵的某個行元素 必須要確保 從表的數據對應此行元素的

先插入一些數據:

insert into animals values(null,'狗',1);
insert into animals values(null,'貓',1);
insert into animals values(null,'豬',1);
insert into animals values(null,'麻雀',2);
insert into animals values(null,'燕子',2);
insert into animals values(null,'孔雀',2);
insert into animals values(null,'鹹魚',2);
insert into animals values(null,'草魚',3);
insert into animals values(null,'黑魚',3);
insert into animals values(null,'刀魚',3);


然後 在看一下 2個表


情況1: 想刪除主鍵的一個行


因爲從表 有 魚類  ,必須要刪除掉從鍵的東西才能 刪除主鍵的元素



6.解除主表和從表的關係

alter table animals drop foreign key `animals_ibfk_1`;
alter table animals drop index `key_Aid`;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章