明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

MySQL學(xué)習(xí)之外鍵的圖文詳細(xì)說明

[摘要]1、比方現(xiàn)在有兩張表“分類表”和“商品表”,為了表明商品屬于哪個分類,通常我們將在商品表上添加一列,用于存放分類cid的信息,此列稱為:外鍵。此時分類表category稱為主表,cid稱為主鍵;商品...
1、比方現(xiàn)在有兩張表“分類表”和“商品表”,為了表明商品屬于哪個分類,通常我們將在商品表上添加一列,用于存放分類cid的信息,此列稱為:外鍵。

MySQL學(xué)習(xí)之外鍵的圖文詳解

此時分類表category稱為主表,cid稱為主鍵;商品表products稱為從表,category_id稱為外鍵。

外鍵特點:1)從表外鍵的值是對主表主鍵的引用

     2)從表外鍵類型必須與主表主鍵一致。

使用外鍵的目的:保證數(shù)據(jù)的完整性

2、首先在命令提示符內(nèi)創(chuàng)建一個數(shù)據(jù)庫web09,并創(chuàng)建兩張表category和product,語句如下:

MySQL學(xué)習(xí)之外鍵的圖文詳解

分別插入多條數(shù)據(jù)

eg.insert into category(cid,cname) values('c001','家電');
insert into product(pid,pname,price,category_id) values('p001','聯(lián)想','5000','c001');

顯示如下:

MySQL學(xué)習(xí)之外鍵的圖文詳解

MySQL學(xué)習(xí)之外鍵的圖文詳解

3、聲明外鍵約束

語法:alter table 從表 add [constraint] [外鍵名稱] foreign key (從表外鍵字段名) references 主表 (主表的主鍵);

[外鍵名稱]用于刪除外鍵約束的,一般建議"_fk"結(jié)尾

MySQL學(xué)習(xí)之外鍵的圖文詳解

約束聲明后,如果我想刪除category表中cid=c003的數(shù)據(jù),刪除不了

MySQL學(xué)習(xí)之外鍵的圖文詳解

4、解除約束

語法:alter table 從表 drop foreign key 外鍵名稱

MySQL學(xué)習(xí)之外鍵的圖文詳解

繼續(xù)刪除category表中cid=c003的數(shù)據(jù),可以刪除

MySQL學(xué)習(xí)之外鍵的圖文詳解

注意:從表外鍵不能添加主表中不存在的記錄

   主表不能刪除從表中已經(jīng)引用的記錄。

5、一對多建表原則:

MySQL學(xué)習(xí)之外鍵的圖文詳解

6、多對多建表原則:

MySQL學(xué)習(xí)之外鍵的圖文詳解

以上就是MySQL學(xué)習(xí)之外鍵的圖文詳解的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。