数据库系统原理及MySQL应用教程实验五索引创建与管理 您所在的位置:网站首页 内联函数原理及应用实验报告 数据库系统原理及MySQL应用教程实验五索引创建与管理

数据库系统原理及MySQL应用教程实验五索引创建与管理

2024-07-15 06:28| 来源: 网络整理| 查看: 265

实验  5  索引创建与管理 一、实验目的

1.理解索引的概念与类型。

2.掌握创建、更改、删除索引的方法。

3.掌握维护索引的方法。

二、实验内容

1.验证性实验:在job数据库中有登录用户信息:userlogin表和个人信息:information 表对其索引的操作。

2.设计性试验:在数据库job下创建worklnfo表对其索引的操作。

三、实验步骤与实验结果

(一)验证性实验

在job数据库中有登录用户信息:userlogin表和个人信息:information 表。具体如表结构所示。

 USERLOGIN 表的结构

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

 id

编号

INT(4)

 name

用户名

VARCHAR(20)

Password

密码

VARCHAR(20)

info

附加信息

TEXT

information表的结构

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

id

编号

INT(4)

Name

姓名

VARCHAR(20)

Sex

性别

VARCHAR(4)

Birthday

出生日期

DATE

Address

家庭地址

VARCHAR(50)

Tel

电话号码

VARCHAR(20)

pic

照片

BLOB

请在上述2表上完成如下操作:

1.创建userlogin表

CREATE TABLE userlogin( id INT(4) NOT NULL UNIQUE auto_increment PRIMARY KEY, name VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, info TEXT )ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.创建information 表

CREATE TABLE information( id INT(4) NOT NULL UNIQUE auto_increment PRIMARY KEY, name VARCHAR(20) NOT NULL, sex VARCHAR(4) NOT NULL, birthday DATE, address VARCHAR(50), tel VARCHAR(20), pic BLOB )ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.在name字段创建名为index_name的索引

CREATE INDEX index_name ON information (name(10));

4.创建名为index_bir的多列索引

CREATE INDEX index_bir ON information (birthday,address);

5.用 ALTER TABLE 语句创建名为index_id的惟一性索引

ALTER TABLE information ADD INDEX index_id(id ASC);

6.删除 userlogin 表上的index_ userlogin 索引

DROP INDEX index_userlogin ON userlogin ;

7.查看 userlogin 表的结构

SHOW CREATE TABLE userlogin ;

8.删除information 表上的index_name索引

DROP INDEX index_name ON information ;

9.查看information表的结构

SHOW CREATE TABLE information;

(二)设计性试验

在数据库job下创建worklnfo表。创建表的同时在id字段上创建名为index_id的唯一性索引,而且以降序的格式排列。

Worklnfo表结构信息如下:

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

id

编号

INT(4)

Name

职位名称

VARCHAR(20)

Type

职位类型

VARCHAR(10)

Address

工作地点

VARCHAR(50)

Wages

工资

YEAR

Contents

工作内容

TINYTEXT

extra

附加信息

TEXT

请完成如下操作:

1.创建workinfo表

CREATE TABLE workinfo( id INT(4) NOT NULL UNIQUE auto_increment PRIMARY KEY, name VARCHAR(20) NOT NULL, type VARCHAR(10) , address VARCHAR(50), wages YEAR, contents TINYTEXT, extra TEXT, UNIQUE INDEX index_id(id DESC) )ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.使用 CREATE INDEX 语句为name字段创建长度为10的索引index_name。

CREATE INDEX index_name ON workinfo (name(10));

3.使用 ALTER TABLE 语句在type和address上创建名为index_t的索引。

CREATE INDEX index_t ON workinfo (type,address);

4.使用 ALTER TABLE 语句将workInfo表的存储引擎更改为MyISAM类型。

ALTER TABLE workinfo ENGINE= MyISAM;

5.使用 ALTER TABLE 语句在extra字段上创建名为index_ext的全文索引。

ALTER TABLE workinfo ADD FULLTEXT INDEX index_ext (extra);

6.使用 DROP 语句删除workInfo表的惟一性索引index_id。

DROP INDEX index_id ON workinfo;

四、观察与思考

1. 数据库中索引被破坏后会产生什么结果?

答:不能使用delete操作。

2.视图上能创建索引吗?

答:不能

3.MySQL中组合索引创建的原则是什么?

创建查询频率高的字段索引;索引的数目不宜太多;选择唯一性索引;对排序、分组、联合查询频率高的字段创建索引;尽量使用前缀来索引;尽量使用数据量少的索引。

4.主键约束和唯一约束是否会默认创建唯一索引?

答:会。

五、实验要求

按要求完成,详细记录操作步骤,书写实验报告。所有实验环节均由每位学 生独立完成,认真记录操作过程,严禁抄袭他人实验结果。

六、实验总结

通过本次实验学习了索引在创建表时创建和在已存在的表上创建索引的方式以及创建唯一索引、全文索引和多列索引的方法。除了创建还学习了删除索引和查看索引的方法。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有