MySQL中的Primary Key、Unique 和Index

一、Primary Key和Unique

Primary Key和Unique 都是一種約束(Constraint),都不允許列種存在重復值,不同的是:

  • Primary Key:一個表只能有一個 PRIMARY KEY 約束,不允許有空值
  • Unique :一個表可以有多個 UNIQUE 約束,允許存在空值
    當向表中插入數據時,如果有約束列中有重復值,會報錯
1062 - Duplicate entry '1' for key 'stuid'

表已經創(chuàng)建好之后添加Primary Key和Unique 約束

Alter table 表名稱 
add constraint 約束名稱 primary key (列名稱);
Alter table 表名稱 
add constraint 約束名稱 unique(列名稱);

刪除Primary Key和Unique 約束

Alter table 表名稱 
drop primary key;
Alter table 表名稱 
drop index  unique約束名稱;

創(chuàng)建約束時沒有定義約束名,如何刪除約束?

第一步:輸入以下語句,從CONSTRAINT_NAME 列找到系統自動定義的約束名

Select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE;

第二步:刪除約束

二、Index

create index 語句用于為表創(chuàng)建索引,目的是為了提高查詢速度。

創(chuàng)建一個簡單的索引,允許有重復值

Create index 索引名稱 
on 表名稱(需要索引的列);

創(chuàng)建一個唯一的索引,兩行不允許擁有重復的索引值

Create unique index 索引名稱 
on 表名稱(需要索引的列);

三、Primary Key 和Unique Index

創(chuàng)建primary key約束的同時會創(chuàng)建一個unique index。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容