欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL添加、删除索引

程序员文章站 2023-11-20 14:12:58
1.索引类型 UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值; INDEX(普通索引):允许出现相同的索引内容; PROMARY KEY(主键索引):不允许出现相同的值; fulltext index(全文索引):可以针对值中的某个单词,但效率确实不敢恭维; 组合索引:实质上是将多个 ......

1.索引类型

  • unique(唯一索引):不可以出现相同的值,可以有null值;
  • index(普通索引):允许出现相同的索引内容;
  • promary key(主键索引):不允许出现相同的值;
  • fulltext index(全文索引):可以针对值中的某个单词,但效率确实不敢恭维;
  • 组合索引:实质上是将多个字段建到一个索引里,列值的组合必须唯一;

2. 用 alter table 语句创建索引

应用于表创建完毕之后再添加;

  • alter table 可用于创建普通索引unique索引primary key索引3种索引格式,
  • table_name是要增加索引的表名,
  • column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。
  • 索引名index_name可选,缺省时,mysql将根据第一个索引列赋一个名称。
  • 另外,alter table允许在单个语句中更改多个表,因此可以同时创建多个索引。
 alter table 表名 add 索引类型 (unique,primary key,fulltext,index)[索引名](字段名);
-- 普通索引
alter table table_name add index index_name (column_list) ;
-- 唯一索引
alter table table_name add unique (column_list) ;
-- 主键索引
alter table table_name add primary key (column_list) ;

3.用 create index 语句创建索引

  • create index可用于对表增加普通索引或unique索引,可用于建表时创建索引
  • 如果是char,varchar类型,length可以小于字段实际长度;
  • 如果是blob和text类型,必须指定 length
create index index_name on table_name(username(length)); 
--  create只能添加这两种索引;
create index index_name on table_name (column_list)
create unique index index_name on table_name (column_list)

4.删除索引

删除索引可以使用alter tabledrop index语句来实现;

drop index index_name on table_name ;

alter table table_name drop index index_name ;

alter table table_name drop primary key ;