MySQL(12)-索引

 普通索引--非聚集型索引

 普通索引就是在创建索引时,不附加作何限制条件,如唯-一、非空等限制,这种类型的索引可以创建在任何数据类型的字段上。

MySQL(12)-索引_第1张图片

 创建表时,创建索引表

目录

​ 普通索引--非聚集型索引

​ 唯一索引

​ 主键索引

​ 全文索引

​ 创建多列索引


 在已经存在的标上创建普通索引

MySQL(12)-索引_第2张图片

 唯一索引

 要求索引列的值是唯一的,需要用UNIQUE来标明

 建表时创建唯一索引

MySQL(12)-索引_第3张图片

 在已经存在的标上创建唯一索引

 通过alter table语句创建唯一索引

 

 主键索引

 通过关键字alter增加主键

MySQL(12)-索引_第4张图片

 

 全文索引

 限制在char、varchar、text字段上

 限制在MyISAM的数据表上创建全文索引

 建表时创建

MySQL(12)-索引_第5张图片

 在已经存在的标上创建

MySQL(12)-索引_第6张图片

MySQL(12)-索引_第7张图片 通过alter table

 

 

 创建多列索引

 在使用多列索引时,在多列索引中只有查询条件中使用了这些列中的第一个列时,多列索引才会被使用。

MySQL(12)-索引_第8张图片  

 

 

 

 查看索引

 在command Line Client模式下

 删除索引

 

 

 

 

 

 

create unique index ix_sno on student(sno)

MySQL(12)-索引_第9张图片

create index ix_sname on student(sname)

create index ix_sage on student(sage)

MySQL(12)-索引_第10张图片

create index ix_sno_cno on sc(sno,cno)

show create table student \G

MySQL(12)-索引_第11张图片

show create table sc \G

MySQL(12)-索引_第12张图片

drop index ix_sname on student

drop index ix_sage on student

查询指定学号(如sno:1001)的成绩,并按照成绩由高到低排序;要求显示学号、课程号、成绩

 

为了提高查询速度,请创建对应的索引表。

create index ix_sno on sc(sno)

create index ix_score on sc(score)

create index ix_sno_cno sc(cno)

 

求全部的平均年龄

求男生、女生分别的平均年龄

求全部年龄最大的学生全部信息

求年龄从大到小的全部学生的信息

 

为了提高查询速度,请创建对应的索引表。

create index ix_sage on student(sage)

 

插入大量数据之前先不要索引或删除索引,然后再建立索引;

先插入到制临时表,再用insert into插入到student表中;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 如果你发现对student表,当你插入新行数据或删除数据时非常慢,你应该怎么办
  • 如果你发现现实情况,要求我们对年龄有大量查询任务,如下
  • 如果需要完成下列查询语句:
  • 删除student表上年龄字段的普通索引表
  • 查看student、sc表的索引信息
  • 在sc表上创建学号、课程号的组合索引表
  • 在student表上创建姓名字段的普通索引表,创建年龄字段的普通索引表
  • student表上创建学号字段的唯一性索引表

你可能感兴趣的:(MySQL,mysql,索引,sql,数据库)