实验5 数据视图

这篇实验内容涉及SQL Server查询分析器的使用,主要通过创建和操作视图来实现数据过滤和管理。实验包括建立信息系学生视图、带有检查选项的视图、选修特定课程学生的视图、高分学生视图、学生出生年份视图、课程最高成绩视图等,并进行了数据插入、更新、删除等操作。同时,实验还探讨了视图的级联删除、查询特定条件的数据以及验证with check option的功能。
摘要由CSDN通过智能技术生成

实验目的:
熟练掌握SQL Server查询分析器的使用方法,加深对标准SQL视图语句的理解。
实验内容:
基于实验一创建的教学管理JXGL数据库,实现数据视图操作。
实验步骤:
在教学管理JXGL数据库中进行如下操作,写出对应的SQL语句:
1、 建立信息系学生视图IS1(sno,sname,ssex,sage)。

 CREATE VIEW IS1
AS 
select sno,sname,ssex,sage
from student
where sdept='IS';

2、 建立信息系学生视图IS2(sno,sname,ssex,sage),并要求在进行修改和插 入操作时仍需保证该视图只有信息系学生(验证SQL Server中是否实现了with check option)。

 CREATE VIEW IS2
AS 
select sno,sname,ssex,sage
from student
where sdept='IS'
with check option;
 insert into IS2
values('201215138','李明','男','19')

3、 建立信息系选修了“数据库”的学生视图IS3(sno,sname, grade)。

 create view IS3
AS
select student.sno,sname,grade
from student,sc
where student.sno=sc.sno and sdept='IS' and cno in(select cno from course where cname='数据库')

4、 基于视图IS3建立信息系选修了“数据库”且成绩在90分以上的学生的视图IS4(sno,sname, grade)。

 create view IS4
AS
select sno,sname,grade 
from IS3
where grade>90

5、 建立一个反映学生出生年份的视图S_Birth(sno,sname, birthday)。

 create view BIRTH(sno,sname,sbirth)
AS
select sno,sname,2014-Sage
from student

6、 建立课程的课程号和该课程最高成绩的视图S_Max(cno,max_grade)。

  create view S_Max(cno,max_grade)
AS
select cno,max(grade)
from sc
group by cno

7、 删除视图IS3,观察IS4是否级联删除。

  drop view IS3

8、 查询信息系年龄小于19岁的同学的学号、姓名和年龄。

  select sno,sname,sage
from IS2
where sage<19

9、 重新建立视图IS3,然后查询信息系中“数据库”成绩最低的同学的学号。

 create view IS3
AS
select student.sno,sname,grade
from student,sc
where student.sno=sc.sno and sdept='IS' and cno in(select cno from course where cname='数据库')
select sno
from IS3
where grade=(select min(grade) from IS3 group by sno)
 

10、 查询选课最高成绩大于90的那些课程的课程号和成绩。

  select cno,max_grade
from S_Max
where max_grade>=90

11、 对IS1录入数据(201215138,李明,M,19),对IS2录入数据(201215139,张兰,F,19),并显示IS1,IS2和student内容(验证SQL Server中是否实现了with check option)。

 insert into IS2
values('201215139','张兰','女','19')
insert into IS1
values('201215138','李明','男','19')

12、 把信息系男同学的年龄置0。

update IS1
set sage=0
where ssex='男'

13、 把1号课的最高成绩置100(验证这条语句能否执行,如果不能,原因是什么?)。

update S_Max
set max_grade=100
where cno=1

14、 删除信息系的名字叫张兰的同学。

  delete 
from is2
where sname='张兰'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值