2022年武汉理工大学数据库综合实验2.1索引实验

实验任务(不包括选做任务)

创建唯一索引

 在department表的departName字段上创建唯一性索引

 创建复合索引

 在employee表的name和address两个字段上创建一个复合索引

 创建表的时候创建索引

 创建与department表相同结构的表department1,并将departName 设为主键,departmentID上建立一个索引

 创建HASH索引

 创建一个包含(employeeID, name, education)等字段的临时员工表 (tmpEmployee) ,并在该表的员工编号字段上创建一个HASH索引

1.在department表的departName字段上创建唯一性索引

create unique index in_departName on department(departName) ;

2.在employee表的name和address两个字段上创建一个复合索引

create index in _name_address on employee (name, address);

3.创建与department表相同结构的表department1,并将departName设为主键,departmentID上建立一个索引

CREATE TABLE `department1` (

  `departmentID` char(3 )  not null,

  `departName` char(20)  not null,

  `comment` varchar(100)  DEFAULT NULL,

  PRIMARY KEY (`departName`)

 ) ENGINE=InnoDB DEFAULT CHARSET=gbk ;

create index in_departmentId on department1(departmentID);

4.创建一个包含(employeeID, name, education)等字段的临时员工表(tmpEmployee) ,并在该表的员工编号字段上创建一个HASH索引

create table if not exists tmpEmployee(

employeeID varchar(6)

primary key not null,

name varchar(10) not null,

education varchar(10)

);

create index in_hash using hash on tmpEmployee(employeeId);

思考

MySQL里Create Index 能否创建主键 Primary Key?

答:不能,必须用 Alter table 创建。

添加主键与添加普通索引有什么区别?

答:主键索引也被称为聚簇索引,叶子节点存放的是整行数据; 而非主键索引被称为二级索引,叶子节点存放的是主键的值。如果根据主键查询, 只需要搜索ID这颗B+树。而如果通过非主键索引查询, 需要先搜索k索引树, 找到对应的主键, 然后再到ID索引树搜索一次, 这个过程叫做回表。

总结, 非主键索引的查询需要多扫描一颗索引树, 效率相对更低.

如果删除基本表的一个列或者多个列,该列上的索引会受怎样的影响?

答:索引是由数据库进行维护的,当我们对存在索引的数据库表进行增删改的操作时,如果涉及到索引列,数据库都会对索引表进行更新;由此可以推断出,当表中某个列被删除后,在该列上的索引也会被删除掉。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值