当前位置: 首页 > news >正文

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

一、实验目的

  1. 理解视图的概念。
  2. 掌握创建、更改、删除视图的方法。
  3. 掌握使用视图来访问数据的方法。

二、实验内容

在job数据库中,有聘任人员信息表:Work_lnfo表,其表结构如下表所示:
在这里插入图片描述
其中表中练习数据如下:
1.‘张明’,‘男’,19,‘北京市朝阳区’,‘1234567’
2.‘李广’,‘男’,21,‘北京市昌平区’,‘2345678’
3.‘王丹’,‘女’,18,‘湖南省永州市’,‘3456789’
4.‘赵一枚’,‘女’,24,‘浙江宁波市’,‘4567890’

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

CREATE VIEW info_view AS
SELECT Id, Name, Sex, Address
FROM Work_Info
WHERE Age > 20;

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

SHOW COLUMNS FROM info_view;
SHOW CREATE VIEW info_view;

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

SELECT * FROM info_view;

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

DROP VIEW IF EXISTS info_view;CREATE VIEW info_view AS
SELECT Id, Name, Sex, Address
FROM Work_Info
WHERE Age < 20;

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

UPDATE Work_Info
SET Sex = '女'
WHERE Id = 3;

6.删除info_view视图。

DROP VIEW IF EXISTS info_view;

三、观察与简答

1.通过视图中插入的数据能进入到基本表中去吗?
是的,通过视图插入的数据通常会直接写入到关联的基本表中,前提是视图定义允许这样的操作,并且插入的数据满足视图和基本表的约束条件。但如果视图使用了聚合函数、DISTINCTGROUP BYHAVING、子查询或者某些复杂的JOIN操作,直接插入可能会受到限制或不允许。

2.WITHCHECK OPTION能起什么作用?
WITH CHECK OPTION是一个可选的视图定义子句,用于限制通过视图进行的插入或更新操作,确保插入或更新的数据满足视图定义中的条件。这意味着,如果试图通过视图插入或更新的数据不符合视图的SELECT语句中的WHERE条件,操作将被拒绝,从而保证视图数据的一致性和逻辑完整性。

3.修改基本表的数据会自动反映到相应的视图中去吗?
是的,当基本表中的数据发生改变时,这些改变会自动反映到基于这些表创建的视图中。因为视图是基本表数据的动态查询结果,每次查询视图时都会重新计算视图定义的查询表达式,所以任何对基本表的修改都会在视图中体现出来。

4.哪些视图中的数据不可以增删改操作?
不可以直接在基于聚合函数(如SUM,AVG等)、DISTINCTGROUP BYHAVING子句、复杂连接(多表JOIN)或者包含非确定性列(如计算列)定义的视图上执行增删改(INSERT, DELETE, UPDATE)操作。这些类型的视图通常只用于读取数据,因为它们不直接对应于基础表中的单一行或可预测的数据集。此外,如果视图定义中包含了子查询或表达式,使得插入或更新操作无法直接转换为对基本表的操作,那么这些操作也将被禁止。

http://www.lryc.cn/news/398890.html

相关文章:

  • C++ 开源库
  • LabVIEW滤波器性能研究
  • 『C++成长记』vector模拟实现
  • 【Mac】Charles for Mac(HTTP协议抓包工具)及同类型软件介绍
  • LVS集群及其它的NAT模式
  • 【RNN练习】天气预测
  • prompt第四讲-fewshot
  • StarRocks分布式元数据源码解析
  • 阅读笔记——《Fuzz4All: Universal Fuzzing with Large Language Models》
  • 【C++】使用gtest做单元测试框架写单元测试
  • Java类与对象
  • xlwings 链接到 指定sheet 从别的 excel 复制 sheet 到指定 sheet
  • 风光摄影:相机设置和镜头选择
  • python制作甘特图的基本知识(附Demo)
  • javascript设计模式总结
  • gpt-4o看图说话-根据图片回答问题
  • 【MySQL】7.MySQL 的内置函数
  • 爬虫:Sentry-Span参数逆向
  • 音视频入门基础:H.264专题(12)——FFmpeg源码中通过SPS属性计算视频分辨率的实现
  • 基于颜色模型和边缘检测的火焰识别FPGA实现,包含testbench和matlab验证程序
  • golang json反序列化科学计数法的坑
  • 罗技K380无线键盘及鼠标:智慧互联,一触即通
  • 卸载wps office的几种方法收录
  • SpringCloud第一篇Docker基础
  • 从零开始学习PX4源码3(如何上传官网源码到自己的仓库中)
  • Docker Compose 启动容器例子
  • 守护服务之门:Eureka中分布式认证与授权的实现策略
  • 核密度估计KDE和概率密度函数PDF(深入浅出)
  • 免开steam 脱离steam 进行游戏的小工具
  • 深度学习--系统配置流程