神山对面数据库实验六

实验六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进行查询。

在这里插入代码片
```create view S00311
as
select sno,sname,ssex,sage,clno
from student
where clno = '00311'
with check option


create view Grades(Sno,Sname,Clno,Cname,Grade)
as
select student.sno,sname,clno,course.cname,grade
from student,cj,course
where cj.sno = student.sno and course.cno = cj.cno


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 student.sno,student.sname,2018 - student.sage
from S00311,student
where S00311.sno = student.sno and student.ssex = '女' 
 


create view C_avg(Cname,Cavg)
as
select  cname,AVG(cj.grade)
from course join cj on course.cno = cj.cno
group by cname
 

select S00311.*,(select count(*) where S00311.sage < 20 and S00311.ssex = '女')
from S00311



select Sname,Clno
from Grades
where Grade > 90 and Cname = '数据库' 



select Cname
from C_avg
where Cavg <60


insert  into S00311 
values(2000108,'刘辰','男','00311');
 


update student 
set clno = '00312'
where sno = 2000108 and clno = '00311'
 

delete from S00311
where sno=2000104



update cj2_00311
set grade = grade + 5




一、建立以下五个表: 教师表:Teacher,学生表:Student, 课程表:Course,选课表:SC,授课表:TC 二、完成以下查询: 1.查询成绩在80-90之间的记录。 2.查询至少4个同学选修课程名。 3.查询其他系中比“信息系”所有学生年龄都大的学生名单及年龄,并按年龄降序输出: 4.查询与学生张建国同岁的所有学生的学。姓名和系别。 5.查询选修2门以上课程学生名单。 6.查询至少有一门与“张建国”选课相同的学生的姓名,课程,系别 7.查询成绩比该课程平均成绩高的学生的成绩表。 8.查询选课为01001课程且成绩高于课程01002学生的姓名,此两门课的课程名和成绩。 9.查询所有没选修01001课程学生名单 10、查询每个同学各门课程的平均成绩和最高成绩,按降序输出姓名、平均成绩、最高成绩; 11、查询所有学生选修了的课程课程名; 12、查询选修了991102学生选修了的课程学生和姓名。 三、使用SQL创建视图,修改记录 1.创建成绩视图SCORE_VIEW,包含学sno,姓名sn,课程名cn,成绩score; 2.创建一个计算机系学生名单视图S_VIEW,包含学sno,姓名sn,性别sex; 3.通过上面的视图,修改学为991102课程01001的成绩记录; 4,创建一个视图,计算机系学生的成绩单score_view_CDEPT,包含学sno,姓名sn,课程名cn,成绩score
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值