江明涛的博客
《MySQL篇 十六》创建索引的三种方式,删除索引
《MySQL篇 十六》创建索引的三种方式,删除索引

《MySQL篇 十六》创建索引的三种方式,删除索引

第一种方式:在执行CREATE TABLE时创建索引

CREATE TABLE user_index2 ( 
id INT auto_increment PRIMARY KEY, 
first_name VARCHAR (16), 
last_name VARCHAR (16), 
id_card VARCHAR (18), 
information text, 
KEY name (first_name, last_name), 
FULLTEXT KEY (information), 
UNIQUE KEY (id_card) 
);

第二种方式:使用ALTER TABLE命令去增加索引

ALTER TABLE table_name ADD INDEX index_name (column_list);

ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

其中table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分 隔。

索引名index_name可自己命名,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以在同时创建多个索引。

第三种方式:使用CREATE INDEX命令创建

CREATE INDEX index_name ON table_name (column_list);

CREATE INDEX可对表增加普通索引或UNIQUE索引。(但是,不能创建PRIMARY KEY索引) 删除索引

根据索引名删除普通索引、唯一索引、全文索引: alter table 表名 drop KEY 索引名

alter table user_index drop KEY name; 
alter table user_index drop KEY id_card; 
alter table user_index drop KEY information;

删除主键索引: alter table 表名 drop primary key (因为主键只有一个)。这里值得注意的是, 如果主键自增长,那么不能直接执行此操作(自增长依赖于主键索引):

需要取消自增长再行删除:

alter table user_index 
-- 重新定义字段 
MODIFY id int, 
drop PRIMARY KEY

但通常不会删除主键,因为设计主键一定与业务逻辑无关。

上次更新时间 13 3 月, 2023 at 09:59 上午