SQL關係-主鍵,外來鍵
阿新 • • 發佈:2019-02-02
一、定義:
主鍵--唯一標識一條記錄,不能有重複的,不允許為空
外來鍵--表的外來鍵是另一表的主鍵,外來鍵可以有重複的,可以是空值
二、作用:
主鍵--用來保證資料完整性
外來鍵--用來和其他表建立聯絡用的
三、個數:
主鍵--主鍵只能有一個
外來鍵--一個表可以有多個外來鍵
四、SQL中主鍵和外來鍵的關係及運用
1.兩實體間主外來鍵關係就是一對多的關係。
例如:學生和班級之間就是一對多關係。
班級是一;學生是多
班級表包含主鍵(classpk);
學生表包含對班級表的引用(classpk)
這個引用關係就是通常說的外來鍵,外來鍵即使其他表的主鍵,在這裡學生表中classpk就是來自於班級表中的主鍵。
所以說:學生表是外來鍵表,班級表是主鍵表。
2.外來鍵表和主鍵表其實是相對的,某個表既可以是其他表的主鍵表,也可以是另一個或者另一些表的外來鍵表,即某個表既可以是外來鍵表也可以是主鍵表。例如: a 和 b 是1對多關係,那麼a是主鍵表,b是外來鍵表。
c 和 a 是 1對多關係,那麼c是主鍵表,a是外來鍵表。
綜上可以發現a既可以是主鍵表,又可以是外來鍵表。
3.在外來鍵表中增加一行時資料,必先保證外來鍵已經存在。 就是說插入資料時,外來鍵必須已經存在於主鍵表中。(外來鍵就是來源於主鍵表的主鍵嘛)
例如:先有班級後有學生,插入一個學生必須保證,班級先存在。
例如:刪除一個班級之前,必須刪除首先刪除該班級所有的學生。
5.刪除外來鍵表中的資料時,對主鍵表不會有任何影響。例如:刪除一個學生對班級不會有影響。
6.實體之間的多對多關係,其實就是建立一箇中間表,中間表包含多對多實體之間的外來鍵。例如:a 和 b 多對多
7.採用級聯的方法,當含有主鍵的表中的資料刪除時,外來鍵表的資料自動進行刪除操作。