数据库系统原理及MySQL应用教程实验五索引创建与管理 | 您所在的位置:网站首页 › 内联函数原理及应用实验报告 › 数据库系统原理及MySQL应用教程实验五索引创建与管理 |
实验 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 实验室设备网 版权所有 |