MySQL索引-索引的分类
主键索引
1.表中的列设定为主键后,数据库会自动建立主键索引。
2.单独创建和删除主键索引语法:
创建主键索引语法: alter table 表名 add primary key (字段);
删除主键索引语法: alter table 表名 drop primary key;
唯一索引
- 表中的列创建了唯一约束时,数据库会自动建立唯一索引。
- 单独创建和删除唯一索引语法:
创建唯一索引语法:alter table 表名 add unique 索引名(字段);
或 create unique index 索引名 on 表名(字段);
删除唯一索引语法:drop index 索引名 on 表名;
单值索引
即一个索引只包含单个列,一个表可以有多个单值索引。
- 建表时可随表一起建立单值索引
- 单独创建和删除单值索引:
创建单值索引: alter table 表名 add index 索引名(字段);
或 create index 索引名 on 表名(字段);
删除单值索引:drop index 索引名 on 表名;
复合索引
即一个索引包含多个列:
- 建表时可随表一起建立复合索引
- 单独创建和删除复合索引:
创建复合索引:create index 索引名 on 表名(字段1,字段2);
或 alter table 表名 add index 索引名(字段,字段2);
删除复合索引: drop index 索引名 on 表名;
#随表建立索引
create table customer(
id int(10) auto_increment,
customer_no varchar(20),
customer_name varchar(20),
primary key(id) ,
unique idx_customer_no(customer_no),
key idx_customer_name(customer_name),
key idex_customer_no_name(customer_no,customer_name)
);
drop table if exists customer;
create table customer(
id int(10) ,
customer_no varchar(20),
customer_name varchar(20)
);
#创建主键索引
alter table customer add primary key(id);
#删除主键索引
alter table customer drop primary key;
#创建唯一索引
alter table customer add unique idx_customer_no(customer_no);
#删除唯一索引
drop index idx_customer_no on customer;
#创建单值索引
alter table customer add index idx_customer_name(customer_name);
#删除单值索引
drop index idx_customer_name on customer;
#创建复合索引
alter table customer add index idx_customer_no_name(customer_no,customer_name);
#删除复合索引
drop index idx_customer_no_name on customer;