MySQL索引的操作

索引的概念:数据库对象索引其实与书的目录类似,

                主要是为了提高从表中检索数据的速度。

(2)根据索引的存储类型可以将索引分为B型索引(BTREE)和哈希索引(HASH)。

(3)MySQL所支持的索引:普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引。

一、创建和查看普通索引

(1)创建表时创建普通索引

 create table 课程表(

 课程编号 char(3),

 课程名称 varchar(20),

 课时 float,

 专业编号 char(3),

 教师编号 char(4),

 index index_课程名称(课程名称)

 );

 show create table 课程表 \G

 explain select * from 课程表 where 课程名称=1\G

 drop index index_课程名称 on 课程表;   \\删除刚刚创建的索引

 

(2)在已经存在的表上创建普通索引

 

create index index_课程名称 on 课程表(课程名称);

 show create table 课程表 \G

 drop index index_课程名称 on 课程表;

 

(3)通过SQL语句alter table创建普通索引

 alter table 课程表 add index index_课程名称(课程名称);

 show create table 课程表 \G

 drop index index_课程名称 on 课程表;

 

二、创建和查看唯一索引

(1)创建表时创建唯一索引

 

create table 班级表(

 班级编号 char(3),

 专业编号 char(3),

 班主任编号 char(4),

 unique index index_班级编号(班级编号)

 );
explain select * from 班级表 where 班级编号=1 \G

 drop index index_班级编号 on 班级表;

 

(2)在已经存在的表上创建唯一索引

 

create unique index index_班级编号 on 班级表(班级编号);

 show create table 班级表 \G

 drop index index_班级编号 on 班级表;

 

(3)通过SQL语句alter table创建唯一索引

 alter table 班级表 add unique index index_班级编号(班级编号);

 show create table 班级表 \G

 drop index index_班级编号 on 班级表;

 

 

三、创建和查看全文索引

drop table 教师表;

 

(1)创建表时创建全文索引

 

create table 教师表(

 教师编号 varchar(10),

 教师姓名 varchar(50),

 职务 varchar(6),

 性别 char(1),

 年龄 int,

 fulltext index index_教师姓名(教师姓名)

 )engine=MyISAM;

 show create table 教师表 \G

 drop index index_教师姓名 on 教师表;

 

 

(2)在已经存在的表上创建全文索引

 

create fulltext index index_教师姓名 on 教师表(教师姓名);

 show create table 教师表 \G

 drop index index_教师姓名 on 教师表;

 

 

(3)通过SQL语句alter table创建全文索引

 

alter table 教师表 add fulltext index index_教师姓名(教师姓名);

 show create table 教师表 \G

 drop index index_教师姓名 on 教师表;

 

 

四、创建和查看多列索引

(1)创建表时创建多列索引

 

create table 专业表(

 专业编号 char(3),

 专业名称 varchar(20),

 key index_专业编号_专业名称(专业编号,专业名称)

 );

 show create table 专业表 \G

 drop index index_专业编号_专业名称 on 专业表;

 

(2)在已经存在的表上创建多列索引

 create index index_专业编号_专业名称 on 专业表(专业编号,专业名称);

 show create table 专业表 \G

 drop index index_专业编号_专业名称 on 专业表;

 

 

(3)通过SQL语句alter table创建多列索引

 

alter table  专业表 add index index_专业编号_专业名称(专业编号,专业名称);

 show create table 专业表 \G

 drop index index_专业编号_专业名称 on 专业表;

 

 
posted @ 2020-04-13 17:44  _Jack_test  阅读(248)  评论(0编辑  收藏  举报