primary key主鍵與unique鍵的區別以及作用?
2016-11-20/郝/
廢話少說/長話短說
共同作用是為了約束字段/建立索引/提高查詢效率
mysql主鍵的屬性:
1.主鍵具有唯一性:是指一張表里只能有一個主鍵;
2.主鍵作用:主鍵primary key是為了唯一標識一個字段,使其唯一且不能為NULL,自動生成索引;
3.隱含定義:如果這些列沒有被明確地定義為NOT NULL,MySQL會隱含地定義這些列。
4.主鍵其實也是索引,甚至在MySQL的術語里面“鍵”就等於“索引”,
UNIQUE鍵的屬性:
1.唯一性:定義了UNIQUE約束的字段中不能包含重復值,
2.可為空:在UNIQUE約束的字段上可以包含空值.
3.擴展:unique就是唯一,當你需要限定你的某個表字段每個值都唯一,沒有重復值時使用.
比如說,如果你有一個person_Info表,並且表中有個身份證的column,那么你就可以指定該字段unique.
關系:主鍵=NOT NULL +UNIQUE鍵的結合;
NOT NULL和UNIQUE約束最好的結合。如果這些列沒有被明確地定義為NOT NULL,MySQL會隱含地定義這些列。
區別:
(1) 唯一性約束所在的列允許空值,但是主鍵約束所在的列不允許空值。
(2) 可以把唯一性約束放在一個或者多個列上,這些列或列的組合必須有唯一的。但是,唯一性約束所在的列並不是表的主鍵列。
(3) 唯一性約束強制在指定的列上創建一個唯一性索引。在默認情況下,創建唯一性的非聚簇索引,但是,也可以指定所創建的索引是聚簇索引。
(4)建立主鍵的目的是讓外鍵來引用.
(5)一個表最多只有一個主鍵,但可以有很多唯一鍵