索引的分类与创建

1)索引分类

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

① 单值索引

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

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


② 唯一索引

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


③ 复合索引

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

2)创建索引

① 语法

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

建表语句如下:

查询表结构如下:

image.png

② 创建索引的第一种方式

Ⅰ 创建单值索引

createindexdept_indexontb(dept);

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

createuniqueindexname_indexontb(name);

Ⅲ 创建复合索引

createindexdept_name_indexontb(dept,name);

③ 创建索引的第二种方式

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

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

Ⅰ 创建单值索引

altertabletbaddindexdept_index(dept);

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

altertabletbadduniqueindexname_index(name);

Ⅲ 创建复合索引

altertabletbaddindexdept_name_index(dept,name);

④ 补充说明

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

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

3)索引删除和索引查询

① 索引删除

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

dropindexname_indexontb;

② 索引查询

语法:show index from 表名;

showindexfromtb;

结果如下:

image.png

腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
本文链接:https://www.jhelp.net/p/YuFxOR8lIO34A5eJ (转载请保留)。
关注下面的标签,发现更多相似文章