mysql外鍵使用

來源:互聯網
上載者:User

標籤:foreign   log   存在   ons   分類   完整性   使用   不能   類別   

一、外鍵  1.外鍵:連結兩張表的欄位,通過主表的主鍵和從表的外鍵來描述主外鍵關係,呈現的是一對多的關係。例如:商品類別(一)對商品(多),主表:商品類別表,從表:商品表。  2.外鍵的特點:從表外鍵的值是對主表主鍵的引用、從表外鍵類型必須與主表主鍵類型一致  3.聲明外鍵約束    文法:alter table (從表) add [constraint] (外鍵名稱) foreign key (從表外鍵欄位名) references 主表 (主表的主鍵)    例如:(1).ALTER TABLE product(從表) ADD CONSTRAINT cid(外鍵名稱) FOREIGN KEY (cid)(從表外鍵欄位名) REFERENCES category(主表) (cid)(主表的主鍵);          (2). ALTER TABLE product ADD FOREIGN KEY (cid) REFERENCES category (cid);     [外鍵名稱]用於刪除外鍵約束,一般建議”_fk”結尾    alter table 從表 drop foreign key 外鍵名稱;   3. 使用外鍵的目的:保證資料完整性  4.注意事項:從表外鍵不能添加主表中不存在的記錄、主表不能刪除從表中已經引用的記錄 二、表與表之間的關係  表與表之間的關係,就是表與表資料之間的關係。  1.    一對多關聯性:    常見執行個體:客戶和訂單,分類和商品,部門和員工    一對多建表原則:在從表(多方)建立一個欄位,欄位作為外鍵指向主表(一方)的主鍵    文法:ALTER TABLE product ADD FOREIGN KEY (cid) REFERENCES category (cid);  2.    多對多關係:    常見執行個體:學生和課程,商品和訂單,人和角色    多對多建表原則:需要建立第三張表,中間表至少要有兩個欄位,這兩個欄位分別作為外鍵指向各自一方的主鍵(就是將一個多對多拆分成兩個一對多)    兩張表分別都是主表,第三張表為從表,提供兩個欄位,都是外鍵。     文法:alter table 從表(stu_course) add foreign key(sno) references stu(sid);    alter table 從表(stu_course) add foreign key(cno) references course(cid);   3.    一對一關聯性:(瞭解)    在實際開發中應用不多,因為一對一可以建立成一張表    常見執行個體:公司和地址    兩種原則:外鍵唯一,外鍵是主鍵 三、操作  1.多表查詢     (1).交叉串連查詢(得到兩個表的乘積,基本不使用)      select * from A,B;    (2).內串連查詢(使用關鍵字:inner join -- inner可以省略)      隱式內串連:select * from A,B where 條件;      例如:select * from category c,product p where c.cid=p.cid;      顯式內串連:select * from A inner join B on 條件;      例如:select * from category as c inner join product as p on p.cid=c.cid;    (3).外串連查詢(使用關鍵字outer join --outer可以省略)      左外串連:left outer join      select * from A left outer join B on 條件;      例如:select * from category c left join product p on p.cid=c.cid;      右外串連:right outer join      select * from A right outer join B on 條件;      例如:select * from category c right join product p on p.cid=c.cid;    內串連和外串連的區別:      左外串連:查詢的是左表全部及兩個表的交集      內串連:查詢的是兩個表的交集      右外串連:查詢的是右表全部及兩個表的交集  2.子查詢     一條select語句結果作為另一條select文法的一部分(查詢條件、查詢結果、表等)    例如:查詢化妝品分類上架商品詳情    select * from product where cid =(select cid from category where cname=‘周伯通‘);

 

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.