MySQL學習(四)——外鍵

來源:互聯網
上載者:User

標籤:外鍵約束   刪除   product   學習   引用   es2017   products   個數   int   

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、多對多建表原則:

MySQL學習(四)——外鍵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.