一、定義:
主鍵--唯一標識一條記錄,不能有重複的,不允許為空
外來鍵--表的外來鍵是另一表的主鍵,外來鍵可以有重複的,可以是空值
二、作用:
主鍵--用來保證資料完整性
外來鍵--用來和其他表建立聯絡用的
三、個數:
主鍵--主鍵只能有乙個
外來鍵--乙個表可以有多個外來鍵
四、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 成績最高...