1. 程式人生 > >SQL關係-主鍵,外來鍵

SQL關係-主鍵,外來鍵


一、定義:
主鍵--唯一標識一條記錄,不能有重複的,不允許為空


外來鍵--表的外來鍵是另一表的主鍵,外來鍵可以有重複的,可以是空值


二、作用:


主鍵--用來保證資料完整性


外來鍵--用來和其他表建立聯絡用的


 三、個數:


主鍵--主鍵只能有一個


外來鍵--一個表可以有多個外來鍵


四、SQL中主鍵和外來鍵的關係及運用


1.兩實體間主外來鍵關係就是一對多的關係。
例如:學生和班級之間就是一對多關係。
             班級是一;學生是多
             班級表包含主鍵(classpk);
             學生表包含對班級表的引用(classpk)
             這個引用關係就是通常說的外來鍵,外來鍵即使其他表的主鍵,在這裡學生表中classpk就是來自於班級表中的主鍵。

             所以說:學生表是外來鍵表,班級表是主鍵表。

2.外來鍵表和主鍵表其實是相對的,某個表既可以是其他表的主鍵表,也可以是另一個或者另一些表的外來鍵表,即某個表既可以是外來鍵表也可以是主鍵表。
例如:  a 和 b 是1對多關係,那麼a是主鍵表,b是外來鍵表。
              c 和 a 是 1對多關係,那麼c是主鍵表,a是外來鍵表。

              綜上可以發現a既可以是主鍵表,又可以是外來鍵表。

3.在外來鍵表中增加一行時資料,必先保證外來鍵已經存在。 就是說插入資料時,外來鍵必須已經存在於主鍵表中。
 (外來鍵就是來源於主鍵表的主鍵嘛)

例如:先有班級後有學生,插入一個學生必須保證,班級先存在。

4.刪除主鍵表時,必須首先刪除主鍵表關聯的所有外來鍵表中的資訊。

例如:刪除一個班級之前,必須刪除首先刪除該班級所有的學生。

5.刪除外來鍵表中的資料時,對主鍵表不會有任何影響。

例如:刪除一個學生對班級不會有影響。

6.實體之間的多對多關係,其實就是建立一箇中間表,中間表包含多對多實體之間的外來鍵。

例如:a 和 b 多對多

7.採用級聯的方法,當含有主鍵的表中的資料刪除時,外來鍵表的資料自動進行刪除操作。