数据库系统原理及MySQL应用教程实验六视图创建与管理

实验 6 视图创建与管理

一、实验目的

1.理解视图的概念。

2.掌握创建、更改、删除视图的方法。

3.掌握使用视图来访问数据的方法。

二、实验内容

1.验证性实验:在job数据库中,有聘任人员信息表:Work_lnfo表对其视图的操作。

2.设计性试验:在学生管理系统中,有学生信息表studentinfo表对其视图的操作。

三、实验步骤与实验结果

(一)验证性实验

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

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

Id

编号

INT(4)

Name

名称

VARCHAR(20)

Sex

性别

VARCHAR(4)

Age

年龄

INT(4)

Address

家庭地址

VARCHAR(50)

Tel

电话号码

VARCHAR(20)

1.创建work_info表

CREATE TABLE  work_info(

id INT(4) NOT NULL  UNIQUE  PRIMARY KEY,

name VARCHAR(20) NOT NULL,

sex VARCHAR(4) NOT NULL,

age INT(4),

address VARCHAR(50),

tel VARCHAR(20)

)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

       

2.向work_info插入数据

INSERT INTO work_info

VALUES

(1001,'张明','男',19,'北京市朝阳区','1234567'),

(1002,'李广','男',21,'北京市昌平区','2345678'),

(1003,'王丹','女',18,'湖南省永州市','3456789'),

(1004,'赵一枚','女',24,'浙江宁波市','4567890');

3.创建视图info_view,显示年龄大于20岁的聘任人员id,name,sex,address信息。

CREATE VIEW info_view(id,name,sex,address)AS

SELECT id,name,sex,address

FROM

work_info

WHERE

age>20 WITH LOCAL CHECK OPTION;

    

4.查看视图info_view的基本结构和详细结构。

(1)查看基本结构:

DESC info_view;

    

(2)查看详细结构:

SHOW CREATE VIEW info_view;

    

5.查看视图info_view的所有记录。

SELECT * FROM info_view;

    

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

ALTER VIEW info_view(id,name,sex,address) AS

SELECT id,name,sex,address  

FROM work_info

WHERE

age<20 WITH LOCAL CHECK OPTION;

    

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

UPDATE info_view SET sex='女' WHERE id=1001;

    

8.删除info_view视图。

DROP VIEW info_view;

        

(二)设计性试验

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

字段名

字段描述

数据类型

主键

外键

非空

唯一

自增

Number

学号

INT(4)

Name

姓名

VARCHAR(20)

Major

专业

VARCHAR(20)

age

年龄

INT(4)

1.创建studentinfo表

CREATE TABLE  studentinfo(

number INT(4) NOT NULL  UNIQUE  PRIMARY KEY,

name VARCHAR(20) NOT NULL,

major VARCHAR(20),

age INT(4)

)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

       

2.使用CREATE VIEW语句来创建视图college_view,显示studentinfo表中的number,name,age,major,并将字段名显示为:

student_num,student_name,student_age,department。

CREATE VIEW college_view

(student_num,student_name,student_age,department)

AS

SELECT number,name,age,major

FROM studentinfo;

       

3.执行SHOW CREATE VIEW语句来查看视图的详细结构

SHOW CREATE VIEW college_view;

    

4.更新视图。向视图中插入如下3条记录:

0901,'张三',20,'外语'

0902,'李四',22,'计算机'

0903,'王五',19,'计算机‘

INSERT INTO college_view VALUES

(0901,'张三',20,'外语'),

(0902,'李四',22,'计算机'),

(0903,'王五',19,'计算机');

      

5.修改视图,使视图中只显示专业为“计算机”的信息。

ALTER VIEW college_view

(student_num,student_name,student_age,department)

AS

SELECT number,name,age,major

FROM studentinfo

WHERE major='计算机';

       

6.删除视图。 

DROP VIEW college_view ;

        

四、观察与思考

1.通过视图中插入的数据能进入到基本表中去吗?

答:可以的,因为视图不保存数据,只保存数据来源的内容。

2.WITH CHECK OPTION能起什么作用?

答:可以防止在更新视图时不满足视图条件的数据插入到视图中。

3.修改基本表的数据会自动反映到相应的视图中去吗?

答:修改基本表视图也会发生变化。

4.哪些视图中的数据不可以增删改操作?

(1)视图中包含SUM、COUNT等聚集函数。

(2)视图中包含UNION、UNION ALL、DISTINCT、GROUP BY、HAVING等关键字。

(3)常量视图,比如:CREATE VIEW view_now AS SELECT NOW().

(4)视图中包含子查询。

(5)由不可更新的视图导出的视图。

(6)创建视图时ALGORITHM为TEMPTABLE类型。

(7)视图对应的表上存在没有默认值的列,而且该列没有包含在视图里。

(8)WITH CHECK OPTION 也决定视图是否可以更新,LOCAL参数表示更新视图时要满足该视图本身定义的条件即可;CASCADED参数表示更新视图时要满足所有相关视图和表的条件,是默认值。

五、实验要求

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

六、实验总结

通过本次实验学习了对视图的增删改查的操作,了解了视图的优势,在统一数据库可以创建不同的视图,为用户分配不同的视图,可以实现不同用户只能查询或修改对应的数据,增加了数据的安全访问控制。

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
数据库系统原理MySQL应用教程》是一本专门讲解数据库系统原理MySQL应用教程,是第2版的PDF版本。数据库系统原理是指数据库系统的基本概念、模型和设计理论,MySQL是一种常用的关系型数据库管理系统。 这本教程的目的是帮助读者了解数据库系统原理,并通过MySQL应用这些原理进行实践。教程分为两个主要部分:数据库系统原理MySQL应用。 在数据库系统原理部分,教程首先介绍了数据库系统的基本概念和三级模式体系结构。然后,详细解释了关系数据库模型和关系代数,以及关系数据的规范化和逻辑设计。此外,还讨论了事务和并发控制的基本原理,以及数据库安全和完整性的管理。 在MySQL应用部分,教程介绍了MySQL的安装和配置,并详细介绍了MySQL的基本操作,包括创建、查询、修改和删除数据表,以及使用SQL语句进行数据查询和更新。此外,还介绍了MySQL的高级功能,如存储过程、触发器和索引的使用。 这本教程适合那些对数据库系统MySQL应用感兴趣的读者,无论是学生、数据库开发人员还是系统管理员。读者通过学习这本教程,可以了解数据库系统原理MySQL的基本应用,掌握数据库设计和管理的基本技能,从而更好地应用数据库技术解决实际问题。 如果您对该教程感兴趣,可以在互联网上搜索相关信息,找到适合您的下载方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小孙同学1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值