实验三 数据更新与视图
一、实验目的
1.掌握数据更新语句的使用; 2.掌握视图操作的基本方法和应用;
3.理解基于视图的查询和数据更新操作的过程。
二、实验内容
1.在实验一创建的表中使用SQL语句完成以下操作: (1)学生“宾兆琦”要退学,请删除该学生的所有记录。 语句为:
delete from s
where sname='宾兆琦';
语句的执行结果为:
(2)将姓名为“朱安琪”同学的专业由原来的“信息管理与信息系统”改为“软件工程”。 语句为:
update s
set major='软件工程' where sname='朱安琪';
语句的执行结果为:
(3)创建转专业记录表change_major,转专业记录表中包括:编号属性列(ID),学号属性列(sno),姓名属性列(sname),转出专业属性列(cbefore),转入专
-1-
业属性列(cafter)和转专业时间属性列(ctime),其中编号属性列ID为主码,学号属性列sno为外码,change_major的表结构为
Change_major(ID,sno,sname,cbefore,cafter,ctime)
语句为:
create table change_major (id varchar2(40) primary key, sno varchar2(40) ,
foreign key (sno) references s(sno), sname varchar2(40), cbefore varchar2(40), cafter varchar2(40), ctime date )
语句的执行结果为:
(4)在change_major表中插入一条完整的元组,表示“朱安琪”同学的转专业信息。
在插入转专业信息时,第一条元组的ID值取1,第二条元组的ID值取2,后面的每个元组ID值依次按照1递增。(注意:此处不用编程实现,插值时手动输入即可) 语句为:
insert
into change_major
values('1','101105','朱安琪','信息管理与信息系统','软件工程',to_date ('2018/03/26','yyyy/mm/dd'));
语句的执行结果为:
(5)删除选修了“计算机网络”但没有及格的选课记录。
-2-
语句为:
delete from sc
where grade < 60 and cno in(select cno from c where cname='计算机网络');
语句的执行结果为:
(6)将(106559,路前元,男,汉族,共青团员,1995/11/8,null,null)插入学生关系。 语句为:
insert into s values
(
'106559','
路
前
元
','
男
','
汉
族
','
共
青
团
员
',to_date
('1995/11/08','yyyy/mm/dd'),null,null);
语句的执行结果为:
(7)在C表中插入以下元组:
“382,数据库原理与应用,3.5,选修,4”, “383,JAVA语言程序设计,4.5,选修,6”
语句为:
insert into c
values('382','数据库原理与应用','3.5','选修','4','信息工程学院'); insert into c
-3-
values('383','JAVA语言程序设计','4.5','选修','6','信息工程学院');
语句的执行结果为:
(8)创建视图JSJ_VIEW,包括计算机科学与技术专业学生的学号,姓名,其选修的课程名及成绩属性列。 语句为:
create VIEW JSJ_VIEW as
select s.sno,s.sname,cname,grade from sc,s,c
where s.sno=sc.sno and c.cno=sc.cno and major='计算机科学与技术';
语句的执行结果为:
(9)创建查询每个学生的修课学分的视图XF_VIEW,要求列出学生学号及总学分。 语句为:
create view xf_view(sno,sumcredit) as
select student.sno,sum(credit)
-4-
from student,cource,studentcourse
where student.sno=studentcourse.sno and cource.cno=studentcourse.cno group by student.sno
语句的执行结果为:
(10)在创建的视图中查询李洋洋和李向冲所修的学分数。 语句为:
select xf_view.sno,sumcredit from xf_view,student
where xf_view.sno=student.sno and sname = '李洋洋' union
select xf_view.sno,sumcredit from xf_view,student
where xf_view.sno=student.sno and sname = '李向冲'
语句的执行结果为:
2.在实验二创建的表中使用SQL语句完成以下操作:
(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。 语句为:
insert
-5-