当前课程知识点:数据库技术应用 >  学习情境二、创建和管理银行存取款机数据表 >  模块3、索引 >  2.3索引

返回《数据库技术应用》慕课在线视频课程列表

2.3索引在线视频

下一节:任务实施:银行存取款机索引

返回《数据库技术应用》慕课在线视频列表

2.3索引课程教案、知识点、字幕

大家好

欢迎来到数据库技术应用在线开放课程

生活当中我们对数据库的操作主要体现在

数据的增删改查四个方面

前面我们已经将银行自动存取款机的

数据库和表都创建好了

接下来我们需要研究一下

怎么能提高最主要的

这个查询操作的速度呢

我们用到的技术叫索引

所以今天的任务就是

BankDB数据库当中索引的创建

下面呢我们有三个子任务

分别是

使用create index在userinfo表当中

创建基于身份证号的

唯一非聚集索引

第二个使用alter table给

transinfo表的银行卡号

和交易日期增加复合索引

第三个删除银行卡号和

交易日期的复合索引

所以本节课的目标

让大家理解索引的作用

掌握索引的创建方法

让我们一起进入知识技能环节

首先我们来看一下索引及其作用

是一种提高查找速度的机制

它有点像我们平时看书当中的目录

有了这个目录

那么你的查找速度就会非常快

没有这个目录查找起来是比较不方便的

所以在数据库当中

我们也需要通过索引来快速的

寻找那些具有特定值的记录

如果没有索引的话

那么执行mysql语句的查询

就要从第一条记录开始扫描

扫描整个表的所有记录

直至所有符合条件的这个记录找到为止

那么这个工作量就很大了

尤其当你这个表里的数据

比较多的时候这个操作的代价就越来越高

那索引提供指针

已指向存储在表中指定列的数据值

然后根据指定的排序次序排列这些指针

数据库再使用索引的方式和书上的目录就很相似了

通过所以来查找特定的值

然后跟随指针到达包含该值的行

如果作为索引条件的列上

已经创建了索引

mysql就不需要扫描任何记录

即可迅速的知道你想要的目标位置

如果表里有一千行记录

通过这个索引查找记录

至少要比顺序扫描要快一百倍

大家来看这两张表

一个是索引文件

一个是学生表student

学生表student当中建立了学号的索引

也就是按照我们的主键升序排列了

学号的索引对应一个位置

通过这个位置

很快就能定位到指定的记录

所以大家看索引的这个文件

每一个学号对应一个记录号

你在查找的时候

很快的就能锁定到目标位置

那如果没有索引文件的时候

指针在原表当中就会顺序的

一个一个的进行查找

那当要查找位于

第一万条记录的时候20070201

那么计算机当中要在表里面查找一万次

那有索引文件的时候

我们就可以用二分法进行查找

计算机先在索引文件当中

学号为20070201的记录进行查找

找到相应的记录号

再到学生表当中直接读取相关的记录

就可以找到我们想要的这条数据

那索引有几种呢

我们把它分成四种

第一个叫普通索引这是最基本的索引类型

它没有唯一性之分

创建普通索引的关键字是index

index这个词大家应该并不陌生

我们在主页面网页的主页面当中

它的名称都是index

也就是说他本身起到了一个索引的作用

第二个叫唯一性索引

它的关键字是unique

这种索引和前面的普通索引基本相同

但有一个区别

索引列的所有值只能出现一次

也就是必须是唯一的

第三个叫主键索引primary key

我们一直在用它

就是设置主键的一种方式

第四个叫全文索引叫fulltext

mysql支持全文索引和全文检索

全文索引的索引类型为fulltextt

全文索引只能在varchar

或者text类型的列上创建

并且只能在myisam表当中创建

那怎么来创建索引呢

我们来看一下它的语法格式

使用create index语句我们可以创建索引

也就说在已有的一个表当中来创建索引

那这里面是要说明的第一点

unique他表示的是唯一的索引

也就是说

我们可以在index的前面

加上你的索引类型是unique还是fulltext

fulltext刚才咱们说过了是全文索引

那么create index语句不能创建主键

只能创建我们的unique和fulltext

特要注意这个索引名

是相互区分索引的一个标志

它要符合我们的命名规则

那么在创建语法格式当中

create index 索引名后面跟的是

on表名括号 列名

也可以对这个列进行升序或者降序的排列

第二个我们来看一下用

alter table怎么来

修改表当中的属性

也就是说

向我们表当中如何来添加一个索引

用的是alter table 表名

add index后面跟上索引的名称 括号列名

那如果你要添加一个主键

直接用add primary key 索引名称 括号列名

那如果你要加一个唯一性索引

就是add unique索引名称 列名

添加全文索引就是

add fulltext索引名称 列名

那么索引我们建好了

如果说我不需要这个索引了

想把它删掉

那么按照咱们前面删除数据库

删除表的经验

我们删除仍然用到的是drop关键字

用的是drop index 索引名 on表名

这样就可以把指定表当中的索引进行删除

好我们一起进入任务实施环节

根据刚才我们给定的任务

进行数据库 BankDB表

当中的索引的添加和删除

第一个子任务是使用create index

在userinfo表上创建

基于身份证号的一个唯一非聚集索引

按照语法格式create

唯一索引unique index

索引名称U下划线index

哪个表上呢

Userinfo表

所以说on uderinfo

括号字段是PID也就是我们的身份证号

第二个使用alter table给transinfo表的

银行卡号和交易日期添加复合索引

我们用到的是alter table来修改

我们的transinfo表

然后添加add index添加索引

索引名是T下划线index

括号里复合索引的两个字段

分别是cardID和transDate

中间用逗号隔开分号结尾

那最后一个删除银行卡号和交易信息的复核

所以那么我们直接用drop index索引名称

on表名transinfo就可以进行删除了

今天的拓展任务是

员工管理信息系统数据库表的索引的创建

感谢大家的聆听

数据库技术应用课程列表:

学习情境一、银行存取款机数据库创建与管理

-模块1、数据库的基础知识

--1.1.1数据库设计-数据库的基本概念

--1.1.2数据管理的发展和数据库体系结构

--数据库的基础知识

-模块2、MYSQL介绍与安装

--MYSQL介绍与安装

--MYSQL介绍与安装

-模块3、银行存取款机数据库的创建与维护

--1.3数据库的创建与维护

--银行存取款机数据库的创建与维护

-模块4、银行存取款机数据库的设计

--1.4.1数据库的概念模型设计

--1.4.2数据库的数据模型设计

--1.4.3数据库的关系规范化

--银行存取款机数据库的设计

学习情境二、创建和管理银行存取款机数据表

-模块1、表的创建

--2.1表的创建

--任务实施:银行存取款机表的创建

--表的创建

-模块2、表的管理

--2.2表的管理

--任务实施:银行存取款机表的管理

--表的管理

-模块3、索引

--2.3索引

--任务实施:银行存取款机索引

--索引

-实践小课堂:宠物电商管理平台数据库和表的创建

--实践小课堂:宠物电商管理平台数据库和表的创建

学习情境三、银行存取款机数据操纵

-模块1、银行存取款机数据插入、修改和删除

--3.1.1数据插入

--任务实施:银行存取款机数据插入

--3.1.2数据修改和删除

--任务实施:银行存取款机数据修改和删除

--实践小课堂:宠物电商管理平台数据插入

--银行存取款机数据插入、修改和删除

-模块2、银行存取款机简单查询

--3.2.1简单查询

--任务实施:银行存取款机简单查询

--实践小课堂:宠物电商管理平台简单查询

--3.2.2统计查询

--任务实施:银行存取款机统计查询

--实践小课堂:宠物电商管理平台条件查询

--银行存取款机简单查询和统计查询

-模块3、银行存取款机连接查询

--3.3连接查询

--任务实施:银行存取款机连接查询

--银行存取款机连接查询

-模块4、银行存取款机子查询

--3.4子查询

--任务实施:银行存取款机子查询

--实践小课堂:宠物电商管理平台多表查询

--银行存取款机子查询

-模块5、银行存取款机分类汇总与排序

--3.5分类汇总与排序

--任务实施:银行存取款机分类汇总与排序

--实践小课堂:宠物电商管理平台分类汇总和排序

--银行存取款机分类汇总与排序

-模块6、银行存取款机视图

--3.6.1视图的创建与管理

--任务实施:银行存取款机视图的创建与管理

--3.6.2视图的更新

--任务实施:银行存取款机视图的更新

--实践小课堂:宠物电商管理平台视图

--银行存取款机视图

学习情境四、银行存取款机数据库编程

-模块1、银行存取款机存储过程

--4.1.1创建和执行存储过程

--任务实施:银行存取款机创建和执行存储过程

--实践小课堂:宠物电商管理平台存储过程

--4.1.2事务

--任务实施:银行存取款机事务

--实践小课堂:宠物电商管理平台存储函数

--银行存取款机存储过程

-模块2、银行存取款机触发器

--4.2.1INSERT触发器

--任务实施:银行存取款机INSERT触发器

--实践小课堂:宠物电商管理平台INSERT触发器

--4.2.2UPDATE触发器

--任务实施:银行存取款机UPDATE触发器

--实践小课堂:宠物电商管理平台UPDATE触发器

--4.2.3DELETE触发器

--任务实施:银行存取款机DELETE触发器

--实践小课堂:宠物电商管理平台DELETE触发器

--银行存取款机触发器

教学情境五、银行存取款机数据库安全性

-模块1、MYSQL用户管理

--模块1、MYSQL用户管理

--MYSQL用户管理

-模块2、MYSQL权限管理

--模块2、MYSQL权限管理

--MYSQL权限管理

-模块3、MYSQL数据库的锁机制

--MYSQL数据库的锁机制

--MYSQL数据库的锁机制

-模块4、MYSQL备份和恢复

--模块4、MYSQL备份和恢复

--MYSQL备份和恢复

2.3索引笔记与讨论

也许你还感兴趣的课程:

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