实验4:索引、视图创建与管理操作实验

一、实验目的:

  1. 理解索引的概念与类型。
  2. 掌握创建、更改、删除索引的方法。
  3. 掌握维护索引的方法。
  4. 理解视图的概念。
  5. 掌握创建、更改、删除视图的方法。
  6. 掌握使用视图来访问数据的方法。

二、验证性实验

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

create database job;
use job;
create table userlogin(id int(4) not null unique primary key auto_increment,name varchar(20) not null,password varchar(20) not null,info text
);
create table information(id int(4) not null primary key unique auto_increment,name varchar(20) not null,sex varchar(4) not null,birthday date,address varchar(50),tel varchar(20),pic blob
);
desc userlogin;
desc information;

请在上述2表上完成如下操作:
1、在name字段创建名为index_name的索引

create index index_name on information (name(10));

2、创建名为index_bir的多列索引

 create index index_bir on information (birthday,address);

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

alter table information add index index_id(id ASC);

4、删除 userlogin 表上的index_ userlogin 索引

 create index index_userlogin on userlogin(id(4));
drop index index_userlogin on userlogin;

5、查看 userlogin 表的结构的代码如下:

 show create table userlogin \G

6、删除information 表上的index_name索引

 drop index index_name on information;

7、查看information 表的结构的语句如下:

 show create table information \G

在job数据库中,有聘任人员信息表:Work_lnfo表,其表结构如下表所示:

其中表中练习数据如下:
1,‘张明’,‘男’,19,‘北京市朝阳区’,‘1234567’
2,‘李广’,‘男’,21,‘北京市昌平区’,‘2345678’
3,‘王丹’,‘女’,18,‘湖南省永州市’,‘3456789’
4,‘赵一枚’,‘女’,24,‘浙江宁波市’,‘4567890’

create table work_info(id int(4) primary key not null unique,name varchar(20) not null,sex varchar(4) not null,age int(4),address varchar(50),tel varchar(20)
);
desc work_info;insert into work_info(id,name,sex,age,address,tel)
values
(1,'张明','男',19,'北京市朝阳区','1234567'),
(2,'李广','男',21,'北京市昌平区','2345678'),
(3,'王丹','女',18,'湖南省永州市','3456789'),
(4,'赵一枚','女',24,'浙江省宁波市','4567890');//机房:
insert into work_info(id,name,sex,age,address,tel)
values
(1,'ZM','MAN',19,'BJSCYQ','1234567'),
(2,'LG','MAN',21,'BJSCPQ','2345678'),
(3,'WD','NMAN',18,'HNSYZS','3456789'),
(4,'ZYM','NMAN',24,'ZJSNBS','4567890');
select * from work_info;

按照下列要求进行操作:
1.创建视图info_view,显示年龄大于20岁的聘任人员id,name,sex,address信息。

create algorithm=merge view info_view(id,name,sex,address) as
select id,name,sex,address from work_info where age>20 with local check option;

2.查看视图info_view的基本结构和详细结构
查看基本结构的代码如下:

desc info_view;

查看详细结构的代码如下:

show create view info_view \G

3.查看视图info_view的所有记录

 select * from info_view;

4.修改视图info_view,满足年龄小于20岁的聘任人员id,name,sex,address信息

alter algorithm=merge view info_view(id,name,sex,address) as
select id,name,sex,address from work_info where age<20 with local check option;

5.更新视图,将id号为3的聘任员的性别,由“男“改为“女”。

update info_view set sex='女' where id=3;
//机房
update info_view set sex='NOMA' where id=3;

6.删除info_view视图

drop view info_view;

三、设计性试验

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

create table workinfo(id int(4) not null unique primary key auto_increment,name varchar(20) not null,type varchar(10),address varchar(50),wages year,contents tinytext,extra text,unique index index_id(id desc)
);

请完成如下操作:
1、使用 CREATE INDEX 语句为name字段创建长度为10的索引index_name。

create index index_name on workinfo(name(10));

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

alter table workinfo add index index_t(type,address);

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

alter table workinfo ENGINE=MYISAM;

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

alter table workinfo add fulltext index index_ext(extra);

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

drop index index_id on workinfo;

在学生管理系统中,有学生信息表studentinfo表,其表结构如下:

create table studentinfo(number int(4) not null primary key unique,name varchar(20) not null,major varchar(20),age int(4)
);

请完成如下操作:

  1. 使用CREATEVIEW语句来创建视图college_view,显示studentinfo表中的number,name,age,major,并将字段名显示为:
student_num,student_name,student_age,department。
create algorithm=undefined view
college_view(student_num,student_name,student_age,department) as
select number,name,age,major from studentinfo
with local check option;
  1. 执行SHOW CREATE VIEW语句来查看视图的详细结构。
show create view college_view \G
  1. 更新视图。向视图中插入如下3条记录:
    0901,‘张三’,20,‘外语’
    0902,‘李四’,22,‘计算机’
    0903,‘王五’,19,‘计算机’
insert into college_view(student_num,student_name,student_age,department)
values
(0901,'张三',20,'外语'),
(0902,'李四',22,'计算机'),
(0903,'王五',19,'计算机');
  1. 修改视图,使视图中只显示专业为“计算机”的信息。
create or replace algorithm=undefined view
college_view(student_num,student_name,student_age,department) as
select number,name,age,major
from studentinfo where major='计算机'
with local check option;
  1. 删除视图。
drop view college_view;

四、观察与思考

  1. 数据库中索引被破坏后会产生什么结果?
    答:不能使用delete操作。
  2. 视图上能创建索引吗?
    答:不能,视图是select语句的结果集,是放在内存中的数据索引是创建在存储空间的对象上,占用存储空间。
  3. MySQL中组合索引创建的原则是什么?
    答:1.创建查询频率高的字段索引;
    2.索引的数目不宜太多;
    3.选择唯一性索引;
    4.对排序、分组、联合查询频率高的字段创建索引;
    5.尽量使用前缀来索引;
    6.尽量使用数据量少的索引。
  4. 主键约束和唯一约束是否会默认创建唯一索引?
    答:会,主键约束的索引键在定义上不允许为NULL,而唯一约束的索引键在定义上允许为NULL。
  5. 通过视图中插入的数据能进入到基本表中去吗?
    答:不能,视图被看成是虚拟表,它并不代表任何的物理数据,只是用来查看数据的视窗数据库中只储存视图的定义,并不是以一组数据的形式储存在数据库中。
  6. with check option能起什么作用?
    答:强制视图上执行的所有数据修改语句都必须符合由 select_statement 设置的准则。
  7. 修改基本表的数据会自动反映到相应的视图中去吗?
    答:视图是一个虚拟表,其内容由查询定义。视图中的数据是由一张或多张表中的数据组成的。如果你改动了基本表,你的视图来源于这个基本表,那视图给你呈现的结果也会随之发生变化。
  8. 哪些视图中的数据不可以增删改操作
    答:视图定义信息、隐藏视图定义

MySQL索引、视图创建与管理操作实验相关推荐

  1. mysql索引的创建与管理实验_mysql索引创建与管理笔记

    什么是索引 索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构. 其作用主要在于提高查询的速度,降低数据库系统的性能开销. 通过索引,查询数据不必读完记录的全部信息进行匹配,而是只查询索 ...

  2. comment on 视图_使用PostgreSQL为表或视图创建备注的操作

    使用PostgreSQL为表或视图创建备注的操作,备注,字段,我是,类型,视图 使用PostgreSQL为表或视图创建备注的操作 易采站长站,站长之家为您整理了使用PostgreSQL为表或视图创建备 ...

  3. MySQL——索引的创建与删除

    文章目录 MySQL--索引的创建与删除 1.创建索引的三种方式 1.1.建表时创建索引 1.2.修改表时创建索引 1.3.使用 CREATE INDEX 语句创建索引 2.删除索引 MySQL--索 ...

  4. mysql索引视图实验总结_视图和索引的创建和使用实验报告

    信息工程学院实验报告 成 绩: 指导老师(签名): 课程名称:<数据库原理> 实验项目名称:视图和索引的创建和使用 一.实 验 目 的: (1)掌握创建视图的SQL语句的用法. (2)掌握 ...

  5. MySQL 索引的创建、删除和查看操作

    ybm(使用部门)一般只有几条记录,除了主关键字外对任何一个字段建索引都不会产生性能优化,实际上如果对这个表进行了统计分析后ORACLE也不会用你建的索引,而是自动执行全表访问 1.索引作用 在索引列 ...

  6. mysql 给视图创建索引_mysql-视图及索引简介

    一.视图的创建.作用及注意事项 1.创建:create view 视图名 as select 语句: 2.删除:drop view 视图名 3.作用: 数据库视图允许简化复杂查询 数据库视图有助于限制 ...

  7. mysql高级知识(linux安装mysql+索引+视图+存储过程和函数+触发器)

    一.linux系统安装Mysql 1.mysql安装包: MySQL :: Download MySQL Community Server 2.mysql安装 linux安装在vmware(虚拟机)上 ...

  8. Mysql索引的创建和使用

    Mysql索引 一.Mysql索引 1.Mysql索引的概念 2.Mysql索引的作用 3.Mysql索引的副作用 4.创建索引的原则依据 5.索引的分类以及创建 6.索引创建的方法 6.1.普通索引 ...

  9. mysql索引0affected_mysql 创建索引和删除索引

    索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引.删除索引可以利用ALTER TABLE或DROP INDEX语句来实现. ...

最新文章

  1. HLG 1539 选课
  2. 【Python基础】50个令人大开眼界的 Matplotlib 可视化项目
  3. Linux学习-RPM 软件管理程序: rpm
  4. 事务,动态代理,连接池
  5. mysql 分区表 限制_Mysql分区表使用的一些限制和需要注意的地方-阿里云开发者社区...
  6. mac谷歌浏览器怎么登陆账户_Mac如何安装谷歌浏览器 Mac安装谷歌浏览器的方法...
  7. python通过opc读plc实例_python调用openopc读写plc
  8. UTC和GMT时间区别
  9. 软件测试黑马程序员课后答案_(完整版)软件测试技术基础课后习题答案
  10. 【2022年二级Python】②基本数据类型
  11. spfa - 黑暗城堡 - 一本通 3.1 例 1
  12. infer的用法_使用 Infer 进行代码扫描
  13. 京东获取商品历史价格信息 API 返回值说明
  14. 京东云服务器——免费体验6个月
  15. 这两省软考电子版证书下载已开通
  16. 获取其他APP中素材
  17. C++输出小于N的所有素数
  18. js逆向-逆向部分技巧总结
  19. latch: cache buffers chains故障处理总结
  20. Redis升级到 6.x 版本后,12306网站起飞了!

热门文章

  1. 浮力辅助的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. 亚马逊救生衣UL1177/ 浮力背心UL1180怎么办理流程和费用?
  3. SQL语言_3 模糊查询和聚合函数
  4. 广州图普网络科技2017校园招聘简章
  5. DIY表情包制作软件
  6. 【知识分享】带你认识注册表
  7. VS(SQL Server一样)设置护眼背景色
  8. 《2022中国企业数字化办公创新与实践产业研究报告》附下载丨三叠云
  9. jQuery(简介、特点、使用方法、【重点】jQuery的选择器:是jQuery的灵魂、jQuery的属性:操作标签的属性)
  10. 特征图注意力_深入理解图注意力机制