什么是主鍵?
在數(shù)據(jù)庫中,常常不只是一個表,這些表之間也不是相互獨立的。不同的表之間需要建立一種關(guān)系,才能將它們的數(shù)據(jù)相互溝通。而在這個溝通過程中,就需要表中有一個字段作為標志,不同的記錄對應(yīng)的字段取值不能相同,也不能是空白的。通過這個字段中不同的值可以區(qū)別各條記錄。就像我們區(qū)別不同的人,每個人都有名字,但它卻不能作為主鍵,因為人名很容易出現(xiàn)重復(fù),而身份證號是每個人都不同的,所以可以根據(jù)它來區(qū)別不同的人。數(shù)據(jù)庫的表中作為主鍵的字段就要像人的身份證號一樣,必須是每個記錄的值都不同,這樣才能根據(jù)主鍵的值來確定不同的記錄。
什么是外鍵? foreignkey
說明你的表A中的某項a,是引用表B的某列b
為什么要使用外鍵?
RDBMS的基本概念,可以維護數(shù)據(jù)庫的完整。
唯一性約束和主鍵的區(qū)別是什么?
唯一性約束
1) 唯一性約束所在的列允許空值,但是主鍵約束所在的列不允許空值。
(2) 可以把唯一性約束放在一個或者多個列上,這些列或列的組合必須有唯一的只。但是,唯一性約束所在的列并不是表的主鍵列。
(3) 唯一性約束強制在指定的列上創(chuàng)建一個唯一性索引。在默認情況下,創(chuàng)建唯一性的非聚簇索引,但是,也可以指定所創(chuàng)建的索引是聚簇索引。
主鍵:
1) 用于標識某行而且與之相關(guān).
2) 是不可能(或很難)更新.
3) 不應(yīng)該允許空(NULL).
唯一域/字段:
1) 用于作為訪問某行的可選手段.
2) 只要唯一就可以更新.
3) 可以為空(NULLs).
注意唯一和主鍵的區(qū)別,它們都是創(chuàng)建一個唯一的索引,一個表格僅含有一個主鍵約束列,但是,它有可能在其他列中含有許多的唯一約束。








暫無數(shù)據(jù)