MySQL中,唯一鍵和主鍵都是常用的約束,用于對數據表中的數據進行限制和保護。
唯一鍵
唯一鍵(Unique Key)是用于保證某些列的值在表中唯一的約束,不允許重復。可以理解為在這些列上建立一個索引,保證索引列的值都是唯一的。唯一鍵可以包含多列,且允許空值,但空值不算重復。
主鍵
主鍵(Primary Key)也是用于保證某些列的值在表中唯一的約束,但它還具有一些其他的特性。主鍵是表中一條記錄的唯一標識符,也就是說,主鍵值不能為NULL,且每個記錄都必須有一個主鍵值。主鍵約束會自動創(chuàng)建一個索引,可以加快表的查詢速度。常常在應用程序中作為關聯(lián)表之間的連接點,用于查詢和數據的合并。
唯一鍵與主鍵的比較
唯一鍵不要求表中每條記錄都有唯一的標識符,但主鍵則要求;唯一鍵允許空值,但主鍵不允許;唯一鍵可以包含多列,主鍵只能有一列;唯一鍵只能有一個,但一個表可以有多個唯一鍵;主鍵可以作為外鍵參照其他表中的數據,保證數據的連接和完整性。
創(chuàng)建唯一鍵和主鍵
創(chuàng)建唯一鍵的語法:ALTER TABLE 表名 ADD UNIQUE KEY (列名); 創(chuàng)建主鍵的語法:ALTER TABLE 表名 ADD PRIMARY KEY (列名); 也可以在創(chuàng)建表時設置唯一鍵和主鍵的約束,如: CREATE TABLE 表名 ( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL UNIQUE KEY, age INT );