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

AHU 数据库 实验五

【实验名称】          实验5  数据库的数据更新与视图管理            

【实验目的】

1. 熟悉数据更新操作的概念与操作类型;

2. 熟练掌握INSERT、UPDATE、DELETE语句的基本语法;

3. 熟练运用INSERT、UPDATE、DELETE语句实现数据的插入、修改与删除操作;

4. 理解视图的基本概念与作用;

5. 熟练掌握创建视图的方法;

6. 熟悉通过视图访问基本表数据的方法。

【实验内容】

1. 针对供应管理数据库SPJ完成以下数据操作(删除操作有些需要分步进行)

(1) 插入一个供应商“S7”的信息,具体参数自己设定;

(2) 插入一个零件“P7”的信息,具体参数自己设定;

(3) 插入一个项目“J8”的信息,具体参数自己设定;

(4) 插入“S7”供应项目“J8”零件“P7”的信息,供应量为 500;

 

(5) 计算各个供应商供应各种零件的平均供货量,并将结果存放在数据库中(先建表);

(6) 将所有供应工程“J2”零件“P3”的供应商改为“S1”;

 

(7) 修改供应量大于100的供应详情,将供应量增加100;

(8) 将“J1”项目的最大供应量降为原来的一半;

(9) 删除“S7”供应商信息(注意参照完整性);

S037表中信息如图所示,同时应该级联删除spj037中S007的数据。

先修改表,增加完整性,级联删除。

(10) 删除零件“P7”的信息;

 先删除SPJ037的表,再删除P037的表

(11) 删除项目“J8”的信息;

 

(12) 删除项目“J7”的所有供应信息;

(13) 删除“天津安贝儿”供应商的所有供应信息;

(14) 删除使用了“北京”供应商供应的“螺丝刀”零件的供应信息和工程项目信息。

先增加级联完整性,然后再一起删除。

2. 针对供应管理数据库SPJ,进行各种视图操作:

(1) 建立“北京”供应商视图BJ_S ;

(2) 建立“北京”工程视图BJ_J ;

(3) 建立“红”色零件视图RED_P;

(4) 建立“北京”供应商的供应情况视图BJS_SPJ;

(5) 建立“北京”供应商供应“北京”工程的供应情况视图BJSJ_SPJ ;

(6) 建立“北京新天地”供应商的供应情况视图WM_SPJ ;

(7) 将“红”色零件的重量加1;

(8) 将“北京新天地”供应商的供应数量加倍;

(9) 分别删除以上定义的各个视图。

【小结或讨论】

本次实验我们主要使用了和视图相关的操作,以及对一个表的修改操作,对一个视图的修改操作,通过本次实验我发现,书上介绍的一些操作在华为OpenGauss的平台上不能通过,可能是因为不同的数据库还是有一些语法上的不同。当数据库中的数据被更新时,视图管理在很大程度上会影响到数据的可读性和可操作性。

更具体地说,当数据库中的数据被更新或删除时,与之相关的视图也需要相应地进行更新和管理。否则,依赖于这些视图的应用程序和查询可能会产生错误或不正确的结果。在关系型数据库中,视图通常是一个虚拟的表,其数据来自基础表的一些列或行的选择、汇总和计算。因此,当基础表中的数据发生更改时,相关的视图也需要更新以反映这些更改。通常,数据库系统提供了许多功能来处理数据更新和视图管理。例如:触发器:当在基础表上执行INSERT、UPDATE或DELETE操作时,可以使用触发器来自动更新与该表相关的视图。索引:为了提高查询效率,可以使用索引来加快视图的访问速度。权限:使用访问控制权限来控制用户对视图的访问,包括视图的读、写和修改等操作。总之,在设计和管理数据库时,需要考虑到数据更新和视图管理的需求,以确保数据的完整性、一致性和可读性。

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

相关文章:

  • 信号和槽1
  • 一个简单的微信小程序表单提交样式模板
  • SpringController返回值和异常自动包装
  • 生存预后不显著?最佳阈值来帮你!| 附完整代码 + 注释
  • kangle一键安装脚本
  • C#写入和调用方法
  • Qt的定时器QTimer
  • Python 导入Excel三维坐标数据 生成三维曲面地形图(面) 4-4、线条平滑曲面(修改颜色)去除无效点
  • 某小厂java后端初面,记录一下
  • Unity制作马赛克效果
  • 【零基础学习04】嵌入式linux驱动中信号量功能基本实现
  • SQL中常见的DDL操作及示例,数据库操作及表操作
  • python 基础练习题
  • 前端请求到 SpringMVC 的处理流程
  • Redis(5.0)
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的木材表面缺陷检测系统(深度学习+Python代码+UI界面+训练数据集)
  • Rust 的 into_owned() 方法
  • stimulsoft report for js vue3使用
  • JavaScript yield关键字使用举例
  • 18. 查看帖子详情
  • 【算法刷题】Day30
  • docker容器镜像管理+compose容器编排(持续更新中)
  • 【Greenhills】MULTIIDE集成第三方的编辑器进行源文件编辑工作
  • 【Flutter】 search_page使用心得
  • 前端Vue列表组件 list组件:实现高效数据展示与交互
  • 每日OJ题_哈希表⑤_力扣49. 字母异位词分组
  • 【Linux】-Linux下的软件商店yum工具介绍(linux和windows互传文件仅仅一个拖拽搞定!!!!)
  • 320: 鸡兔同笼(python)
  • CentOS 8启动流程
  • js【详解】原型 vs 原型链