实验三:数据更新与视图
一、实验目的
1.掌握数据插入、修改和删除语句的语法格式和使用方法。
2.通过对视图的操作掌握视图虚表的本质,学会视图的定义方法。
3.理解基于视图的查询和更新的操作过程,知道视图更新的限制,在Oracle中学会使用user_updatable_columns系统表查询视图可否更新。
二、实验内容
1.在实验一创建的student,course,teacher,sc,tc表中用SQL语句完成以下操作:
(1)学生“刘家顺”要退学,请删除该学生的所有记录(包括选课记录和学生记录)。
delete from sc where sno = (select sno from student where sname = '刘家顺');
--删除选课记录delete from student where sname = '刘家顺'; --删除学生记录
(2) 田小亮同学要转专业,他的学号为103456,将该同学的专业由原来的“软件工程”改为“计算机科学与技术”,班级由原来的“软工3班”修改为“计算机1班”。
update student
set smajor = '计算机科学与技术',sclass = '计算机1班'
where sno = '103465';
(3) 删除选修了“嵌入式系统与应用”但没有及格的选课记录。
Delete from sc where cno =(select cno from course where cname='嵌入式系统与应用') and grade<60;
commit;
Delete from sc where cno =(select cno from course
where cname='嵌入式系统与应用') and grade<60;commit;
(4) 将元组(1203076,吕振华,男,1985/11/8,讲师,体育部)插入教师关系。
insert into teacher
values('123076','吕振华','男',to_date('1985/11/8','yyyy/mm/dd'),'讲师','体育部');
(5)在course表中插入以下两门课程信息:
课程号:3094217,课程名:图与网络,课程学分:2,课程性质:选修,课程学时:32,开课学期:6
课程号:3094215,课程名:智能搜索与推荐技术,课程学分:2,课程性质:选修,课程学时:32,开课学期:7
insert allinto course values('3094217','图与网络',2,'选修','32','6')into course values('3094215','智能搜索与推荐技术',2,'选修','32','7')select 1 from dual;
(6)创建名为xg_view的视图,在视图中显示所有信息工程学院教师的授课信息,包括教师姓名,职称,所授课程名称,授课班级,授课学期。
create or replace view xg_view(教师姓名,职称,所授课程名称,授课班级,授课学期)as select tname,ttitle,cname,sclass,semester from teacher,tc,coursewhere teacher.tno = tc.tno and tc.cno = course.cno and tcollege = '信息工程学院';
(7) 创建每个学生已修课程总学分的视图,视图名为xf_view,要求在视图中显示学生学号、姓名和总学分。
create or replace view xf_view
(学生学号,姓名,总学分)as select student.sno,sname,sum(credit)
from student,sc,course
where student.sno = sc.sno and sc.cno =course.cno and grade>60
group by student.sno,sname
with check option;
(8) 在创建的视图中查询大数据3班每位学生已修的总学分。
select 总学分 from xf_view,student where student.sno = xf_view.学生学号 and sclass = '大数据2班';
select 总学分 from xf_view,student
where student.sno = xf_view.学生学号 and sclass = '大数据2班';
(9) 在系统表user_updatable_columns中查看视图xf_view是否可以更新,如果不能请说明原因。
select *from user_updatable_columnswhere table_name = 'XF_VIEW';
不能更新,因为该视图由两个基本表导出,所以不允许更新。
2.在实验一创建的s,p,j和spj表中用SQL语句完成以下操作:
(1)现有一供应商,代码为s9、姓名为英特尔、所在城市西安,供应情况如下:供应零件p5给工程j7数量为600,供应零件p4给工程j4数量为500,请将此供应商的信息和供应信息插入数据库
insert into s(sno,sname,city) values('s9','英特尔','西安');insert all into spj(sno,pno,jno,qty)values('s9','p5','j7',600)into spj(sno,pno,jno,qty)values('s9','p4','j4',500)select 1 from dual;
(2) 请将北京供应商的供应数量加150。
update spjset qty = qty + 150 where sno in (select sno from s where city ='北京');
(3)把全部红色零件的颜色改为黑色。
update p set color ='黑' where color = '红';
(4) 由s5供给j4的零件p6改为由s1供应。
update spj set sno = 's1' where jno = 'j4' and sno ='s5' and pno='p6';
(5) 请将(s2,j7,p4,510)插入供应情况关系。
insert into spj values('s2','j7','p4',510);
(6) 零件p3已经停产,请将p3的相关信息从数据库中删除。
delete from p where pno='p3';delete from spj where pno='p3';
(7) 创建零件名为螺丝刀的供应情况的视图sd_view,视图中显示供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY)。
create or replace view sd_view(供应商名,零件名,零件重量,工程项目代码,供应数量)
as select sname,pname,weight,jno,qty
from s,p,spj
where s.sno =spj.sno and spj.pno=p.pno
and p.pname='螺丝刀';
(8) 在视图sd_view中查询供应数量为500的供应商姓名。
select 供应商名 from sd_view where 供应数量=500;
(9)请为三建工程项目建立一个供应情况的视图SJ_View,包括供应商编号,零件编号,供应数量。
create or replace view SJ_View(供应商编号,零件编号,供应数量)as select sno,pno,qty from spj ;
三、实验总结
1.掌握了数据插入、修改和删除语句的语法格式和使用方法。
2.学会了建立、查询视图,掌握了它的基本语法格式。
3.删除或修改数据时,后面只能跟一张表,若删除、修改涉及多个表,需要进行嵌套。
4.本次实验中也使用了之前学习过的查询语句,巩固复习了之前的知识,对于查询操作使用的更灵活了。
实验三:数据更新与视图相关推荐
- 将计算机系成绩置零,实验三数据更新操作_计算机软件及应用_IT计算机_专业资料...
实验三数据更新操作_计算机软件及应用_IT计算机_专业资料 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 杭州电子科技大学实验报告实验 ...
- 数据库实验三 数据更新实验
1.实验目的 熟悉数据库的数据更新操作,能够使用 SQL 语句对数据库进行数据的增加.删除.修改操作. 2.实验内容和要求 针对 tpch 数据库或自建数据库 test 设计单行插入.批量插入.修改和 ...
- 数据库实验三 嵌套查询和视图操作
实验三 嵌套查询和视图操作 实验目的: 1. 通过本实验能够熟练应用sql语言使用IN.比较符.ANY或ALL和EXISTS操作符进行嵌套查询操作. 2. 掌握视图的定义.查询.修改. 实验要求: ...
- 数据库实验三:视图、安全性
实验三:视图.安全性 一.实验目的 二.实验内容 1.创建四类用户角色 2.为以上四类用户角色操作基本表的权限 3.为每类用户角色至少创建一个用户 4.测试 ①测试客户用户 ②测试供货商用户 ③测试商 ...
- 查询收尾、带子查询的数据更新、视图 4.12数据库课程实验
学习完了SQL语言对数据库的增删改查,包括集合查询.基于派生表的查询.数据更新和视图 1.集合查询 1.1 并集 1.2 交集 1.3 差集 2.基于派生表的查询 3.带子查询的数据更新 3.1 插入 ...
- 计算机网络实验设计应用题,计算机网络实验三实验报告.doc
计算机网络实验三实验报告 实验综合成绩 (百分制) 实验评阅教师签名其中实验态度优良中及格不及格实验报告优良中及格不及格 实 验 报 告 实验时间: 2015年 12 月 24日 实验运行环境 win ...
- 网络渗透测试实验三 XSS和SQL
网络渗透测试实验三 XSS和SQL注入 实验目的:了解什么是XSS:思考防御XSS攻击的方法:了解SQL注入的基本原理:掌握PHP脚本访问MySQL数据库的基本方法:掌握程序设计中避免出现SQL注入漏 ...
- 图形学实验三 图形几何变换
实验三 图形几何变换 实验类型:设计型 实验学时:2实验要求:必修 一.实验目的 理解掌握OpenGL二维平移.旋转.缩放变换的方法. 二.实验内容 1阅读实验原理,运行示范实验代码,掌握Open ...
- 实验七 索引和视图的操作Mysql索引和视图
实验七 索引和视图的操作 [实验目的]:①学会使用update.delete.insert命令 ②掌握视图的建立.修改.更新和删除. ③掌握索引的创建和使用. [实验内容]:相关命令写在作业本上. 1 ...
- 实验三 可综合时序逻辑电路实验
实验三 可综合时序逻辑电路实验 由于typora无法直接向CSDN导入图片,所以删掉了时序仿真以及使用步骤中的图片. 一 .实验目的 掌握可综合Verilog语言进行时序逻辑设计的使用: 学习测试模块 ...
最新文章
- tableViewCell的操作
- scrapy crawlspider
- 微软 Exchange Autodiscover 协议存bug,数十万域凭据可遭泄露
- 阿里架构师的日志:带你快速理解微服务架构;理解微服务架构的核心
- Python中简单的编程
- 商城GW-SHOP,基于 微信小程序 + springboot + vue 技术构建
- 三人表决器实验报告总结_三人表决器实验报告
- 抖音html动态时钟,三分钟教会!火爆抖音的“动态时钟屏保”,个性十足!
- 低代码平台-竞品分析ABP框架
- 解决outlook 中邮件中,点击链接提示(您的组织策略阻止我们为您完成此操作)解决方案
- LSL学习笔记(3)
- 万字零基础微信前端开发总结
- re的剩余模块和subprocess模块
- android开发中对图片的处理方式汇总
- 二极管专题:二极管性质及伏安特性
- 通达OA系统排名?通达OA办公系统怎么选?什么是用户口碑最好的通达OA系统?
- 【作业调查题】时限:1s 空间:256m
- 软件测试工作的难点是什么?针对难点怎么做?
- AutoCAD2016第一个ObjectArx2016程序HelloWorld
- 豆瓣好书整理(9.5分以上)