1、比方現在有兩張表“分類表”和“商品表”,為了表明商品屬於哪個分類,通常我們將在商品表上添加一列,用於存放分類cid的信息,此列稱為:外鍵。 此時分類表category稱為主表,cid稱為主鍵;商品表products稱為從表,category_id稱為外鍵。 外鍵特點:1)從表外鍵的值是對主表主鍵 ...
1、比方現在有兩張表“分類表”和“商品表”,為了表明商品屬於哪個分類,通常我們將在商品表上添加一列,用於存放分類cid的信息,此列稱為:外鍵。
此時分類表category稱為主表,cid稱為主鍵;商品表products稱為從表,category_id稱為外鍵。
外鍵特點:1)從表外鍵的值是對主表主鍵的引用
2)從表外鍵類型必須與主表主鍵一致。
使用外鍵的目的:保證數據的完整性
2、首先在命令提示符內創建一個資料庫web09,並創建兩張表category和product,語句如下:
分別插入多條數據
eg.insert into category(cid,cname) values('c001','jiadian');
insert into product(pid,pname,price,category_id) values('p001','lenovo','5000','c001');
顯示如下:
3、聲明外鍵約束
語法:alter table 從表 add [constraint] [外鍵名稱] foreign key (從表外鍵欄位名) references 主表 (主表的主鍵);
[外鍵名稱]用於刪除外鍵約束的,一般建議"_fk"結尾
約束聲明後,如果我想刪除category表中cid=c003的數據,刪除不了
4、解除約束
語法:alter table 從表 drop foreign key 外鍵名稱
繼續刪除category表中cid=c003的數據,可以刪除
註意:從表外鍵不能添加主表中不存在的記錄
主表不能刪除從表中已經引用的記錄。
5、一對多建表原則:
6、多對多建表原則: