MySQL-索引的分类与创建

利用表中的某一个字段创建单值索引。一张表中往往有多个字段,也就是说每一列其实都可以创建一个索引,这个根据我们实际需求来进行创建。还需要注意的一点就是,一张表可以创建多个“单值索引”。

1)索引分类

  • 单值索引
  • 唯一索引
  • 复合索引

① 单值索引

利用表中的某一个字段创建单值索引。一张表中往往有多个字段,也就是说每一列其实都可以创建一个索引,这个根据我们实际需求来进行创建。还需要注意的一点就是,一张表可以创建多个“单值索引”。

假如某一张表既有age字段,又有name字段,我们可以分别对age、name创建一个单值索引,这样一张表就有了两个单值索引。

② 唯一索引

也是利用表中的某一个字段创建单值索引,与单值索引不同的是:创建唯一索引的字段中的数据,不能有重复值。像age肯定有很多人的年龄相同,像name肯定有些人是重名的,因此都不适合创建“唯一索引”。像编号id、学号sid,对于每个人都不一样,因此可以用于创建唯一索引。

③ 复合索引

多个列共同构成的索引。比如说我们创建这样一个“复合索引”(name,age),先利用name进行索引查询,当name相同的时候,我们利用age再进行一次筛选。注意:复合索引的字段并不是非要都用完,当我们利用name字段索引出我们想要的结果以后,就不需要再使用age进行再次筛选了。

2)创建索引

① 语法

语法:create 索引类型 索引名 on 表(字段);

建表语句如下:

查询表结构如下:

MySQL-索引的分类与创建
MySQL-语法(查询)
② 创建索引的第一种方式

创建单值索引

create index dept_index on tb(dept);

创建唯一索引:这里我们假定name字段中的值都是唯一的

create unique index name_index on tb(name);

创建复合索引

create index dept_name_index on tb(dept,name);

③ 创建索引的第二种方式

先删除之前创建的索引以后,再进行这种创建索引方式的测试;

语法:alter table 表名 add 索引类型 索引名(字段)

创建单值索引

alter table tb add index dept_index(dept);

创建唯一索引:这里我们假定name字段中的值都是唯一的

alter table tb add unique index name_index(name);

创建复合索引

alter table tb add index dept_name_index(dept,name);

④ 补充说明

如果某个字段是primary key,那么该字段默认就是主键索引。

主键索引和唯一索引非常相似。相同点:该列中的数据都不能有相同值;不同点:主键索引不能有null值,但是唯一索引可以有null值。

3)索引删除和索引查询

① 索引删除

语法:drop index 索引名 on 表名;

drop index name_index on tb;

② 索引查询

语法:show index from 表名;

show index from tb;

结果如下:

MySQL-索引的分类与创建
MySQL-索引查询

原创文章,作者:修行,如若转载,请注明作者昵称:修行及出处:https://wp.fjsqywlkj.top/computer/database/2767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年1月30日 13:27
下一篇 2022年2月1日 00:22

相关推荐

发表回复

登录后才能评论
在线客服 QQ交流群
返回顶部