目录
1、创建索引:
2、查看索引
3、删除索引
4、案例分析:
4.1、name是姓名字段,该字段的值可能会重复,为该字段创建索引
4.2、phone是手机号,手机号字段的值非空且唯一,为该字段创建索引
4.3、为profession,age创建联合索引(这里的联合索引的顺序是有讲究的)
4.4、为email建立合适的索引来提升查询效率
首先索引的语法主要由:创建索引,查看索引、删除索引构成
1、创建索引:
CREATE [UNIQUE|FULLTEXT] INDEX index_name ON table_name (index_col_name,...);
#index_name是自己起的索引的名字
#table_name是自己的数据表名
#index_col_name是需要建立索引的数据列,其中...代表多个列,一个索引时可以关联多个字段的(联合索引/组合索引)
其中,[UNIQUE|FULLTEXT] 是指创建的是唯一索引,不可以重复使用同一个值,如果不加的话就是常规索引
2、查看索引
SHOW INDEX FROM tb_user;
可以看到索引的结果的表变形了,可以使用以下语法:
show index from table_name\G;
虽然现在数据是一行一行的,但是不直观,在实际应用中还是选择上一种;
3、删除索引
DROP INDEX index_name ON table_name;
#删除那一张表的哪一个索引
4、案例分析:
先创建数据表,并插入数据
create table tb_user(id int auto_increment primary key comment '主键ID',name varchar(10) comment '姓名',profession varchar(10) comment '专业',age int comment '年龄',gender char(1) comment '1:男,2:女',phone char(11) comment '手机号',email char(11) comment '邮件'
)comment '用户基本信息表';insert into tb_user(id,name,profession,age,gender,phone,email) values(null,'黄渤','教授',45,'1','18800801111','3333@qq.com'),(null,'冰冰','学生',35,'2','18800002222' ,'4444@qq.com'),(null,'码云','老板',55,'1','18800008888' ,'5555@qq.com'),(null,'李彦宏','总裁',50,'1','18800009999','6666@qq.com');
4.1、name是姓名字段,该字段的值可能会重复,为该字段创建索引
CREATE INDEX index_user_name ON tb_user(name);
4.2、phone是手机号,手机号字段的值非空且唯一,为该字段创建索引
CREATE UNIQUE INDEX index_user_phone ON tb_user(phone);
4.3、为profession,age创建联合索引(这里的联合索引的顺序是有讲究的)
CREATE INDEX index_user_pro_age ON tb_user(profession,age);
4.4、为email建立合适的索引来提升查询效率
CREATE INDEX index_user_eamil ON tb_user(email);