当前课程知识点:MySQL数据库案例教程 >  第2章 数据库和表的基本操作 >  2.5 索引 >  2-5索引视频

返回《MySQL数据库案例教程》慕课在线视频课程列表

2-5索引视频在线视频

下一节:2-5索引课件

返回《MySQL数据库案例教程》慕课在线视频列表

2-5索引视频课程教案、知识点、字幕

同学们好

今天我们来学习第2章

数据库和表的基本操作

本次课的内容是索引

我们先看一个案例

从1万条学生信息中

查询李三的详细信息

我们需要从数据表的第一条记录开始

一条一条比对姓名

直到找到姓名是李三的学生信息

但是

如果我们将姓名提取出来

按照姓氏排序

就可以大大节省时间

这就要用到索引的相关知识

使用索引

可以很大程度上提高数据库的查询速度

本节课将详细介绍MySQL的索引

索引是一种特殊的数据结构

由数据表中的一列或多列组合而成

可以用来快速查询数据表中

有某一特定值的记录

通过索引

查询数据时不用读完记录的所有信息

而只是查询索引列

索引有其明显的优势

可以大大加快数据的查询速度

但是增加索引

也有许多不利的方面

创建和维护索引不仅要耗费时间

还要占用磁盘空间

所以使用索引时

需要综合考虑它的优缺点

索引主要有以下几类

1 普通索引

普通索引是 MySQL 中最基本的索引类型

它没有任何限制

2 唯一索引

唯一索引 索引列的值必须唯一

如果是组合索引

则列的组合必须唯一

主键索引是一种特殊的唯一索引

3 单列索引

即一个索引只包含单个列

一个表可以有多个单列索引

4 组合索引

指在表的多个字段组合上创建的索引

5 全文索引

全文索引只能在CHAR VARCHAR

或者TEXT类型的列上创建

MySQL中

只有MyISAM存储引擎支持全文索引

只有MyISAM存储引擎支持全文索引

MySQL 提供了三种创建索引的方法

我们先学习第一种

在创建表的时候创建索引

创建索引的语法格式如下

在字段名后边跟上

[UNIQUE|FULLTEXT]

INDEX|KEY [索引名]

字段名1 [(长度)]

字段名n[(长度)])

[ASC|DESC])

我们看下各参数的含义

UNIQUE FULLTEXT为可选参数

分别表示唯一索引或全文索引

INDEX 与KEY 两者作用相同

用来指定创建索引

二选一即可

索引名

创建索引的名称

为可选参数

如果不指定

MySQL默认在哪个字段上创建索引

该字段名就是索引名

字段名n

是需要创建索引的字段

该字段必须从数据表中

定义的多个字段中选择

ASC或DESC

指升序或降序

索引是否创建成功

我们可以使用下边两条语句查看

接下来我们看几个案例

先看案例1

创建学生表student

同时在它的sname字段上

创建普通索引

打开MySQL可视化工具

我们先使用USE stu 命令

选择stu数据库

再使用DROP TABLE student;命令

将之前创建的student表删除

然后输入创建索引命令

同样 本次课程中使用的表

前边都已经学习过

所以我们还是直接使用

不再详细介绍表的创建

在最后一个字段后边添加逗号

添加 INDEX(sname)

选中 执行

可以看到执行成功了

请同学们注意

本案例中创建的索引

即是普通索引也是单列索引

我们通过SHOW INDEX命令

查看一下索引

输入命令

SHOW INDEX FROM student

选中 执行

从查询结果可以看到

已经创建了索引sname

接下来我们看案例2

创建课程表course

同时在它的cname字段上创建唯一索引

索引名为unique_cname

我们先使用DROP TABLE course;命令

将之前创建的course表删除

创建表的命令

我们仍然直接使用

在最后一个字段后边添加逗号

添加UNIQUE INDEX

unique_cname(cname)

将这两条语句

选中 执行

可以看到执行成功了

我们通过SHOW INDEX命令

查看一下索引

输入命令

SHOW INDEX FROM course

选中 执行

从查询结果可以看到

已经创建了唯一索引unique_cname

接下来我们看案例3

创建学生表student

同时在它的sid

sname sex字段上创建组合索引

索引名为multi_index

我们先使用DROP TABLE student;命令

将之前创建的student表删除

然后重新输入创建表的命令

在最后一个字段后边添加逗号

添加INDEX multi_index

(sid sname sex)

将这两条语句选中

执行

可以看到执行成功了

我们通过SHOW INDEX命令

查看一下索引

输入命令

SHOW INDEX FROM student

选中 执行

从查询结果可以看到

已经创建了组合索引multi_index

接下来我们看案例4

创建学生表student

同时在它的addr字段上创建全文索引

索引名为addr_index

我们先使用DROP TABLE student;命令

将之前创建的student表删除

然后输入创建表的命令

在最后一个字段后边添加逗号

添加 FULLTEXT INDEX

addr_index(addr)

在语句最后的括号后边

加上ENGINE=MyISAM

将这两条语句选中

执行

可以看到执行成功了

我们通过SHOW INDEX命令

查看一下索引

输入命令

SHOW INDEX FROM student

选中 执行

从查询结果可以看到

已经创建了全文索引addr_index

接下来我们学习第二种

使用 CREATE INDEX 语句

在一个已有的表上创建索引

其语法格式为

create

[UNIQUE|FULLTEXT]

INDEX 索引名

on 表名

(字段名[(长度)] [ASC|DESC])

接下来我们看几个案例

先看案例5

先创建课程表course

然后在它的cname字段上创建唯一索引

索引名为unique_cname

我们先使用

DROP TABLE course;命令

将之前创建的course表删除

然后输入创建表命令

我们直接使用以前创建course表的命令

再输入创建索引的命令

CREATE

UNIQUE

INDEX

unique_cname

ON course(cname)

选中这三条语句执行

可以看到执行成功了

我们通过SHOW INDEX

FROM course

查看一下索引

选中 执行

从查询结果可以看到

已经创建了唯一索引

unique_cname

我们再看案例6

先创建成绩表score

然后在它的sid

cno result字段上

创建组合索引

索引名为multi_index

我们先使用DROP TABLE score;命令

将之前创建的score表删除

然后输入创建表命令

我们直接使用以前创建score表的命令

再输入创建索引的命令

CREATE INDEX multi_index

ON score(sid,cno,result)

选中 执行

可以看到执行成功了

我们通过SHOW INDEX命令

查看一下索引

输入命令

SHOW INDEX FROM score

选中 执行

从查询结果可以看到

已经创建了组合索引multi_index

接下来我们学习第三种

使用ALTER TABLE 语句

在创建好的表上创建索引

其语法格式为

ALTER TABLE 表名 ADD

[UNIQUE|FULLTEXT] INDEX [索引名]

(字段名[(长度)] [ASC|DESC])

接下来我们看案例7

先创建成绩表score

然后使用ALTER TABLE语句

在它的sid cno

result字段上创建组合索引

索引名为multi_index

我们先使用DROP TABLE score;命令

将之前创建的score表删除

然后输入创建表命令

我们直接使用以前创建score表的命令

再输入创建索引的命令

ALTER TABLE score ADD

INDEX multi_index(sid,cno,result)

选中这三条命令执行

可以看到执行成功了

我们通过SHOW INDEX命令查看一下索引

输入命令

SHOW INDEX FROM score

选中 执行

从查询结果可以看到

已经创建了组合索引multi_index

当不再需要索引时

可以删除索引

我们先看第一种

使用DROP INDEX 语句删除索引

其语法格式为

DROP INDEX 索引名 ON 表名

接下来我们看一个案例

案例8 使用DROP INDEX语句

删除score表的索引multi_index

输入命令

Drop index multi_index

on score

选中 执行

可以看到执行成功了

我们通过SHOW INDEX命令查看一下索引

输入命令

SHOW INDEX FROM score

选中 执行

从查询结果可以看到

score表的索引multi_index

已经被成功删除了

我们再看下

如何使用ALTER TABLE 语句删除索引

语法结构为

ALTER TABLE 表名

DROP INDEX 索引名

接下来我们看一个案例

案例9 使用ALTER TABLE语句

删除course表的索引unique_cname

输入命令

ALTER TABLE course

Drop index unique_cname

选中 执行

可以看到执行成功了

我们通过SHOW INDEX FROM course

命令查看一下索引

选中 执行

从查询结果可以看到

course表的索引unique_cname

已经被成功删除了

以上是本节课的全部内容

接下来我们看几个思考题

1 简述索引以及它的优缺点

2 总结索引的类型

以及创建索引的方法

请同学们利用下课时间

来完成这些思考题

最后我们对本此课进行总结

我们先学习了索引的基本概念

又学习了创建索引的三种方法

最后学习了如何删除索引

使用索引时

需要综合考虑它的优缺点

同样的

在日常生活中

很多事情都有两面性

我们要学会以辩证的思维看待问题

取其利避其弊

本次课就讲到这里

谢谢 再见

MySQL数据库案例教程课程列表:

第1章 数据库基础知识

-1.1 数据库基础知识

--1.1 数据库基础知识视频

--1-1数据库基础知识课件

-1.2 MySQL的安装与运行

--1-2MySQL安装与运行视频

--1-2MySQL安装与运行课件

--1-2MySQL安装与运行实训

-第1章 测试

第2章 数据库和表的基本操作

-2.1 数据库的基本操作

--2-1数据库的基本操作视频

--2-1数据库的基本操作课件

--2-1数据库的基本操作实训

-2.2 表的基本操作

--2-2表的基本操作视频

--2-2表的基本操作课件

--2-2表的基本操作实训

-2.3 MySQL数据类型

--2-3MySQL数据类型视频

--2-3MySQL数据类型课件

--2-3MySQL数据类型实训

-2.4 约束设置

--2-4约束设置视频

--2-4约束设置课件

--2-4约束设置实训

-2.5 索引

--2-5索引视频

--2-5索引课件

--2-5索引实训

-第2章测试

第3章 记录操作

-3.1 插入记录

--3-1 插入记录视频

--3-1插入记录课件

--3-1插入记录实训

-3.2 修改记录

--3-2修改记录视频

--3-2修改记录实训

--3-2修改记录课件

-3.3 删除记录

--3.3删除记录

--3-3删除记录实训

--3-3删除记录课件

-第3章 测试

第4章 查询与视图

-4.1 select语句

--4.1select 语句视频

--4-1select语句课件

--4-1select语句实训

-4.2 单表查询

--4-2-1select子句

--4-2-2where子句

--4-2-3group子句

--4-2单表查询实训

-4.3 多表查询

--4-3多表查询视频

--4-3多表查询课件

--4-3多表查询实训

-4.4 子查询

--4-4子查询视频1

--4-4子查询视频2

--4-4子查询课件

--4-4子查询实训

-4.5 外键

--4-5外键视频

--4-5外键课件

--4-5外键实训

-4.6 视图

--4-6视图视频1

--4-6视图视频2

--4-6视图课件

--4-6视图实训

-第4章测试

第5章 高级操作

-5.1 函数

--5-1自定义函数视频

--5-1系统函数

--5-1函数课件

--5-1 函数实训

-5.2 流程控制语句

--5-2流程控制语句视频

--5-2流程控制课件

--5-2流程控制实训

-5.3 事务与游标

--5-3事务与游标视频

--5-3事务与游标课件

--5.3事务与游标实训

-5.4 存储过程

--5-4存储过程视频

--5-4存储过程课件

--5-4存储过程实训

-5.5 触发器

--5-5触发器视频

--5-5触发器课件

--5-5触发器实训

-第5章测试

第6章 备份与还原

-6.1 数据库备份与还原

--6-1数据库备份与还原 视频

--6-1数据库备份与还原 课件

--6-1数据库备份与还原 实训

-6.2 异构数据源导入导出

--6-2异构数据源导入导出 视频

--6-2异构数据源导入导出 课件

--6-2异构数据源导入导出 实训

-第6章测试

第7章 用户与权限

-7.1 用户管理

--7-1用户管理 视频

--7-1用户管理 课件

--7-1用户管理 实训

-7.2 权限管理

--7.2 权限管理 视频

--7.2 权限管理 课件

--7.2 权限管理 实训

-7.3 应用实例开发

--7-3应用实例开发 视频

--7-3应用实例开发 课件

--7-3应用实例开发 实训

-第7章测试

2-5索引视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。