primary key主鍵與unique鍵

2021-09-26 05:22:42 字數 858 閱讀 8656

mysql主鍵的屬性:

1.主鍵具有唯一性:是指一張表裡只能有乙個主鍵;

2.主鍵作用:主鍵primary key是為了唯一標識乙個字段,使其唯一且不能為null,自動生成索引;

3.隱含定義:如果這些列沒有被明確地定義為not null,mysql會隱含地定義這些列。

4.主鍵其實也是索引,甚至在mysql的術語裡面「鍵」就等於「索引」

unique鍵的屬性:

1.唯一性:定義了unique約束的字段中不能包含重複值,

2.可為空:在unique約束的字段上可以包含空值.

3.擴充套件:unique就是唯一,當你需要限定你的某個表字段每個值都唯一,沒有重複值時使用.

關係:主鍵=not null +unique鍵的結合;

not null和unique約束最好的結合。如果這些列沒有被明確地定義為not null,mysql會隱含地定義這些列。

區別:

(1) 唯一性約束所在的列允許空值,但是主鍵約束所在的列不允許空值。

(2) 可以把唯一性約束放在乙個或者多個列上,這些列或列的組合必須有唯一的。但是,唯一性約束所在的列並不是表的主鍵列。

(3) 唯一性約束強制在指定的列上建立乙個唯一性索引。在預設情況下,建立唯一性的非聚簇索引,但是,也可以指定所建立的索引是聚簇索引。

(4)建立主鍵的目的是讓外來鍵來引用.

(5)乙個表最多只有乙個主鍵,但可以有很多唯一鍵

primary key與unique的區別

定義了unique約束的字段中不能包含重複值,可以為乙個或多個字段定義unique約束。因此,unique即可以在字段級也可以在表級定義,在uniqued約束的字段上可以包含空值。oracle自動會為具有primary key約束的字段 主碼字段 建立乙個唯一索引和乙個not null約束,定義pr...

primary key與unique的區別

定義了unique約束的字段中不能包含重複值,可以為乙個或多個字段定義unique約束。因此,unique即可以在字段級也可以在表級定義,在uniqued約束的字段上可以包含空值。oracle自動會為具有primary key約束的字段 主碼字段 建立乙個唯一索引和乙個not null約束,定義pr...

primary key與unique的區別

定義了unique約束的字段中不能包含重複值,可以為乙個或多個字段定義unique約束。因此,unique即可以在字段級也可以在表級定義,在uniqued約束的字段上可以包含空值。oracle自動會為具有primary key約束的字段 主碼字段 建立乙個唯一索引和乙個not null約束,定義pr...