索引的概念:数据库对象索引其实与书的目录类似,
主要是为了提高从表中检索数据的速度。
(2)根据索引的存储类型可以将索引分为B型索引(BTREE)和哈希索引(HASH)。
(3)MySQL所支持的索引:普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引。
一、创建和查看普通索引
(1)创建表时创建普通索引
create table课程表(
课程编号char(3),
课程名称varchar(20),
课时float,
专业编号char(3),
教师编号char(4),indexindex_课程名称(课程名称)
);
showcreate table课程表 \G
explainselect * from 课程表 where 课程名称=1\Gdrop index index_课程名称 on 课程表; \\删除刚刚创建的索引
(2)在已经存在的表上创建普通索引
create index index_课程名称 on课程表(课程名称);
showcreate table课程表 \Gdrop index index_课程名称 on 课程表;
(3)通过SQL语句alter table创建普通索引
alter table 课程表 add indexindex_课程名称(课程名称);
showcreate table课程表 \Gdrop index index_课程名称 on 课程表;
二、创建和查看唯一索引
(1)创建表时创建唯一索引
create table班级表(
班级编号char(3),
专业编号char(3),
班主任编号char(4),unique indexindex_班级编号(班级编号)
);
explain select * from 班级表 where 班级编号=1\Gdrop index index_班级编号 on 班级表;
(2)在已经存在的表上创建唯一索引
create unique index index_班级编号 on班级表(班级编号);
showcreate table班级表 \Gdrop index index_班级编号 on 班级表;
(3)通过SQL语句alter table创建唯一索引
alter table 班级表 add unique indexindex_班级编号(班级编号);
showcreate table班级表 \Gdrop index index_班级编号 on 班级表;
三、创建和查看全文索引
drop table 教师表;
(1)创建表时创建全文索引
create table教师表(
教师编号varchar(10),
教师姓名varchar(50),
职务varchar(6),
性别char(1),
年龄int,
fulltextindexindex_教师姓名(教师姓名)
)engine=MyISAM;
showcreate table教师表 \Gdrop index index_教师姓名 on 教师表;
(2)在已经存在的表上创建全文索引
create fulltext index index_教师姓名 on教师表(教师姓名);
showcreate table教师表 \Gdrop index index_教师姓名 on 教师表;
(3)通过SQL语句alter table创建全文索引
alter table 教师表 add fulltext indexindex_教师姓名(教师姓名);
showcreate table教师表 \Gdrop index index_教师姓名 on 教师表;
四、创建和查看多列索引
(1)创建表时创建多列索引
create table专业表(
专业编号char(3),
专业名称varchar(20),keyindex_专业编号_专业名称(专业编号,专业名称)
);
showcreate table专业表 \Gdrop index index_专业编号_专业名称 on 专业表;
(2)在已经存在的表上创建多列索引
create index index_专业编号_专业名称 on专业表(专业编号,专业名称);
showcreate table专业表 \Gdrop index index_专业编号_专业名称 on 专业表;
(3)通过SQL语句alter table创建多列索引
alter table 专业表 add indexindex_专业编号_专业名称(专业编号,专业名称);
showcreate table专业表 \Gdrop index index_专业编号_专业名称 on 专业表;