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'

表已经创建好之后添加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约束名称;

创建约束时没有定义约束名,如何删除约束?

第一步:输入以下语句,从CONSTRAINT_NAME 列找到系统自动定义的约束名

Select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE;

第二步:删除约束

二、Index

create index 语句用于为表创建索引,目的是为了提高查询速度。

创建一个简单的索引,允许有重复值

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

创建一个唯一的索引,两行不允许拥有重复的索引值

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

三、Primary Key 和Unique Index

创建primary key约束的同时会创建一个unique index。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容