实验四和实验五稍后码出来,哎,这个五一小长假算是废了。打起精神,为了那些远大的梦想,加油!!
实验六SQL 的数据定义(视图)
一、实验目的
1.掌握使用SQL语言进行各类视图的建立和删除。
2.对各类视图进行查询、插入、删除、更新等操作,验证可更新视图和不
可更新视图
二、实验准备及任务
1.复习教材上SQL语言中视图一节的内容。
2.使用教师已经录入相关数据的附录二的“xsglsjk”数据库,完成以下内容,预先写好相应的命令。
(1)建立一个包含00311班学生记录的视图S00311,并要求对该视图插删改操作时只能对该班的学生进行。
(2)建立一个包含所有学生Sno,Sname,Clno,Cname和Grade字段的视图Grades。
(3)建立00311班选修了2号课程学生的成绩视图Cj2_00311。
(4)在视图S00311上建立能反映出生日期的00311班班女学生视图S00311_1。
(5)建立一个反映各门课程平均成绩的视图C_avg。
3.对上述视图进行查询操作,并分析视图的消解,预先写好相应的命令,并记录其能否正确消解。
(6)使用select * from 视图名 对上述各视图进行简单查询。
(7)在S00311视图中查询00311班年龄不大于20的女生人数。
(8)在Grades视图中查询‘数据库’考90分以上的学生姓名和班级。
(9)在C_avg视图中查询平均成绩不及格的课程。
4、对上述视图进行插删改等操作,验证可更新视图和不可更新视图,预先写好相应的命令,并记录其可更新性。
(10)在00311班学生视图S00311中
①插入新学生记录(2000108,刘辉,男,00311)和(2000109,张强东,男,00312)。
②将学号为:“2001108”的学生班级从‘00311’改为‘00312’。
③从S00311中将学号为“2000104”的记录删除。
(11)通过Cj2_00311视图给00311班选修了2号课程的学生每人加
5分。
(12)在C_avg视图中将2号课程平均成绩减5分。
4、(13)删除C_avg视图。
(14)删除S00311视图后,并再次对视图Cj2_00311和S00311_1进
行查询。
mycode :
create view S00311
as select sno,sname,ssex,clno,sage
from student
where clno = '00311'
create view Grades(sno,sage,ssex,sname,clno,cno,grade)
as
select student.sno,sage,ssex,sname,clno,cno,grade
from student,cj
where student.sno = cj.sno
create view cj2_00311(sno,grade)
as
select student.sno,grade
from student,cj
where student.sno = cj.sno and cno = '2' and clno = '00311'
create view S00311_1(sno,sname,sbirth)
as
select sno,sname,2018 - sage
from S00311
create view C_avg(sno,Gavg)
as
select sno,avg(grade)
from cj
group by sno
select *
from S00311;
select sno,sage
from S00311
where sage < 20;
select sno,clno
from Grades
where cno = 1 and grade >= 90
select sno
from C_avg
where gavg < 60;
insert
into S00311
values('2000108', '刘辉', '男', '00311',20)
insert
into S00311
values('2000109', '张强东', '男', '00312',20)
update S00311
set clno = '00312'
where sno = '2001108';
delete
from S00311
where sno = '2000104';
update cj2_00311
set grade = grade + 5
update C_avg
set gavg = gavg - 10
DELETE C_AVG
这要不是一个应化的学弟提前叮嘱我要实验结果我也不会把实验上传,哎。改掉惰性