实验8 视图创建与管理实验

[复制链接]
发表于 2026-2-25 13:48:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、实验目标


  • 明白视图的概念。
  • 把握创建、更改、删除视图的方法。
  • 把握利用视图来访问数据的方法。
二、实验内容

在job数据库中,有聘任职员信息表:Work_lnfo表,其表布局如下表所示:

此中表中练习数据如下:
1.‘张明’,‘男’,19,‘北京市向阳区’,‘1234567’
2.‘李广’,‘男’,21,‘北京市昌平区’,‘2345678’
3.‘王丹’,‘女’,18,‘湖南省永州市’,‘3456789’
4.‘赵一枚’,‘女’,24,‘浙江宁波市’,‘4567890’
按照下列要求举行利用:
1.创建视图info_view,表现年龄大于20岁的聘任职员id,name,sex,address信息。
  1. CREATE VIEW info_view AS
  2. SELECT Id, Name, Sex, Address
  3. FROM Work_Info
  4. WHERE Age > 20;
复制代码
2.查察视图info_view的根本布局和详细布局。
  1. SHOW COLUMNS FROM info_view;
  2. SHOW CREATE VIEW info_view;
复制代码
3.查察视图info_view的全部纪录。
  1. SELECT * FROM info_view;
复制代码
4.修改视图info_view,满意年龄小于20岁的聘任职员id,name,sex,address信息。
  1. DROP VIEW IF EXISTS info_view;
  2. CREATE VIEW info_view AS
  3. SELECT Id, Name, Sex, Address
  4. FROM Work_Info
  5. WHERE Age < 20;
复制代码
5.更新视图,将id号为3的聘任员的性别,由“男“改为“女”。
  1. UPDATE Work_Info
  2. SET Sex = '女'
  3. WHERE Id = 3;
复制代码
6.删除info_view视图。
  1. DROP VIEW IF EXISTS info_view;
复制代码
三、观察与简答

1.通过视图中插入的数据能进入到根本表中去吗?
是的,通过视图插入的数据通常会直接写入到关联的根本表中,条件是视图界说允许如许的利用,而且插入的数据满意视图和根本表的束缚条件。但假如视图利用了聚合函数、DISTINCT、GROUP BY、HAVING、子查询大概某些复杂的JOIN利用,直接插入大概会受到限定或不允许。
2.WITHCHECK OPTION能起什么作用?
WITH CHECK OPTION是一个可选的视图界说子句,用于限定通过视图举行的插入或更新利用,确保插入或更新的数据满意视图界说中的条件。这意味着,假如试图通过视图插入或更新的数据不符合视图的SELECT语句中的WHERE条件,利用将被拒绝,从而包管视图数据的同等性和逻辑完备性。
3.修改根本表的数据会主动反映到相应的视图中去吗?
是的,当根本表中的数据发生改变时,这些改变会主动反映到基于这些表创建的视图中。由于视图是根本表数据的动态查询效果,每次查询视图时都会重新盘算视图界说的查询表达式,以是任何对根本表的修改都会在视图中表现出来。
4.哪些视图中的数据不可以增编削利用?
不可以直接在基于聚合函数(如SUM,AVG等)、DISTINCT、GROUP BY、HAVING子句、复杂毗连(多表JOIN)大概包罗非确定性列(如盘算列)界说的视图上实行增编削(INSERT, DELETE, UPDATE)利用。这些范例的视图通常只用于读取数据,由于它们不直接对应于底子表中的单一行或可猜测的数据集。别的,假如视图界说中包罗了子查询或表达式,使得插入或更新利用无法直接转换为对根本表的利用,那么这些利用也将被克制。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表