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...