mysql主鍵 Mysql主鍵和唯一鍵的區別點總結

2021-10-17 07:02:02 字數 1211 閱讀 9976

什麼是主鍵?

主鍵是表中唯一標識該表中每個元組(行)的列。主鍵對錶實施完整性約束。表中只允許使用乙個主鍵。主鍵不接受任何重複值和空值。表中的主鍵值很少更改,因此在選擇主鍵是需要小心,要選擇很少發生更改的地方。乙個表的主鍵可以被另乙個表的外來鍵引用。

為了更好地理解主鍵,我們建立乙個名為student的表,它具有roll_number、name、batch、phone_number、citizen_id等屬性。

在上面的示例中,roll_number屬性永遠不能具有相同的null值,因為在每個大學中註冊的學生都擁有唯一的roll_number,因此兩個學生不能擁有相同的roll_number,並且表中的每一行都可以用學生的roll_number屬性作為唯一標識。因此,在這種情況下,我們可以將roll_number屬性作為主鍵。

什麼是唯一鍵?

唯一鍵約束可以唯一地標識關係或表中的單個元組。與主鍵不同,乙個表可以有多個唯一鍵。唯一鍵約束只能接受列的乙個空值;唯一約束也由另乙個表的外來鍵引用。當有人想對非主鍵的列和列組實施唯一約束時,可以使用它。

為了更好地理解唯一鍵,我們使用帶有roll_number,name,batch,phone_number和citizen_id屬性的student表;其中roll_number屬性已經給主鍵。

在這個示例中,可以為citizen_id分配唯一約束,其中citizen_id列中的每個條目都應該是唯一的,而不是重複的,因為乙個國家/地區的每個公民都必須擁有其唯一標識號。但是,如果學生從其他國家遷移,在這種情況下,他或她將不具有citizen_id,並且該條目可能具有null值,因為在唯一約束中允許乙個null。

主鍵和唯一鍵之間的主要區別:

1、當乙個屬性宣告為主鍵時,它將不接受null值。另一方面,當宣告為unique的屬性時,它可以接受乙個null值。

2、表中只能有乙個主鍵,但可以有多個唯一鍵。

3、定義主鍵時自動建立聚簇索引。相反,unique鍵生成非聚集索引。

以上就是關於mysql主鍵和唯一鍵的區別的全部內容,感謝大家對指令碼之家的支援。

mysql 加主鍵 MySQL新增主鍵和外來鍵

檢視表的字段資訊 desc 表名 檢視表的所有資訊 show create table 表名 新增主鍵約束 alter table 表名 add constraint 主鍵 形如 pk 表名 primary key 表名 主鍵字段 新增外來鍵約束 alter table 從表 add constra...

刪除mysql主鍵語句 MySQL主鍵新增 刪除

2改動資料庫和表的字符集 alter database maildb default character set utf8 改動資料庫的字符集 alter table mailtable default character set utf8 改動表的字符集 假設您想要把錶預設的字符集和全部字元列 c...

MySQL聯合主鍵儲存 mysql聯合主鍵

聯合主鍵就是多個表的主鍵聯合起來作為乙個表的主鍵 這個是摘抄的別人的 create table products description products id int 11 not null,language id int 11 not null default 1 products name v...