- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据库系统概论》实验报告 实验题目: SQL Serve中的嵌套查询、数据更新和视图 日期 2013.4.28 班级 计算机1105 姓名 潘聪 实验环境:SQL Server 2005 实验目的:
掌握SQL语言的核心语句--SELECT语句的使用,具体为在SQL Server2005环境下采用Transact-SQL实现嵌套查询。
掌握采用Transact-SQL实现数据更新。
掌握采用Transact-SQL实现视图的定义、删除、查询与更新。
实验内容:
按照《数据库系统概论》P82页中的学生课程数据库和P75页中的SPJ数据库完成以下查询
(一)嵌套查询中的存在量词
查询还没有给任何工程供应过零件的供应商号sno和供应商名称sname,用带EXISTS谓词的子查询或相关联子查询实现。
select sno,sname from s where not exists( select * from spj where spj.sno = s.sno)
查询使用了全部零件的工程号JNO,用带EXISTS谓词的子查询实现。
select jno from j where not exists(select * from p where not exists(select * from spj where p.pno = spj.pno and j.jno = spj.jno))
查询至少选修了’1’号和’2’号课程的学生学号, 用带EXISTS谓词的子查询或自身连接查询实现。
(1)select sno from sc where sno in (select sno from sc where cno=1) and cno=2
(2)select sno from sc where cno=1 intersect select sno from sc where cno=2
(3) select sno from sc sc1 where exists( select * from sc sc2 where sc1.sno = sc2.sno and sc1.cno = 1 and sc2.cno = 2)
附加题:查询至少用了供应商S1所供应的所有零件的工程号JNO,用带EXISTS谓词的子查询实现。
select jno from spj spj1 where not exists( select * from spj spj2 where sno = s1 and not exists( select * from spj spj3 where spj1.sno = spj2.sno and spj3.pno = spj2.pno))
(二)数据更新
把全部蓝色零件的颜色改为红色;
update p set p.color=蓝 where p.color=红;
select * from p;
将S5供应给J1的零件P3改为由S1供应,请作必要的修改;
update spj set sno=s1 where sno = s5 and pno=p3 and jno = j1 ;
select * from spj;
从供应商关系中删除S3的记录,并从供应情况关系中删除相应的记录。
delete from spj where sno=s3;
delete from s where sno=s3
select * from s;
select * from spj;
删除所有信息系(CS)同学的信息。
delete from student where sdept = cs;
delete from sc where sno in (select sno from student where sdept=cs ) ;
select * from student;
select * from sc;
自行设计案例对学生-课程数据库的数据更新,并观察是否有违反数据的完整性约束。
(三)视图
请为”一汽”create view s_s(sno,pno,qty) as select sno,pno,qty from spj,j where j.jno = spj.jno and j.jname=一汽”一汽”select sno 零件代码,sum(qty) 数量from s_s group by sno;
找出供应商S2的供应情况;
select * from s_s where sno=s2;
创建一个学生成绩统计视图,包括学号,姓名,选课门数,平均分,最高分。(没有选课的学生不参加统计)。
create view s_g(sno,sname,sum,a
文档评论(0)