SQL關係 主鍵,外來鍵

2021-06-19 18:25:25 字數 1000 閱讀 7460

一、定義:

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

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

二、作用:

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

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

三、個數:

主鍵--主鍵只能有乙個

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

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

1.兩實體間主外來鍵關係就是一對多的關係。

例如:學生和班級之間就是一對多關係。

班級是一;學生是多

班級表包含主鍵(classpk);

學生表包含對班級表的引用(classpk)

這個引用關係就是通常說的外來鍵,外來鍵即使其他表的主鍵,在這裡學生表中classpk就是來自於班級表中的主鍵。

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

2.外來鍵表和主鍵表其實是相對的,某個表既可以是其他表的主鍵表,也可以是另乙個或者另一些表的外來鍵表,即某個表既可以是外來鍵表也可以是主鍵表。

例如:  a 和 b 是1對多關係,那麼a是主鍵表,b是外來鍵表。

c 和 a 是 1對多關係,那麼c是主鍵表,a是外來鍵表。

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

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

(外來鍵就是**於主鍵表的主鍵嘛)

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

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

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

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

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

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

例如:a 和 b 多對多

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

SQL中主鍵外來鍵關係

在學過資料庫以後對於約束的概念就不是太陌生了,即 約束 constraint 是microsoft sql server 提供的自動保持資料庫完整性的一種方法,定義了可輸入表或表的單個列中的資料的限制條件 當然主鍵和外來鍵也不例外也是保持資料完整性的一種方法,接下來就針對主外來鍵來展開講述。主鍵和外...

SQL主鍵 外來鍵 索引

主鍵 唯一區分出不同的記錄的字段。常見可作為id欄位的型別 自增整數型別 全域性唯一guid型別 guid演算法通過網絡卡mac位址 時間戳和隨機數生成的字串 外來鍵 實現一對多 多對多和一對一的關係。可以通過資料庫來約束,也可以不設定約束,僅靠應用程式的邏輯來保證。一對多 學生表 students...

Sql 主鍵與外來鍵

三張表 s s sname,gender,age c c cname,tname sc sc s c grade s 為學生號 主鍵 sname為學生姓名,c 為課程號 主鍵 cname為課程名,tname為老師姓名,sc中使用外來鍵關聯 請編寫sql語句完成下列操作 1.將 oracle 成績最高...