收藏 分销(赏)

实验四:SQL Serve中的嵌套查询、数据更新和视图.doc

上传人:pc****0 文档编号:8989931 上传时间:2025-03-10 格式:DOC 页数:6 大小:159.50KB
下载 相关 举报
实验四:SQL Serve中的嵌套查询、数据更新和视图.doc_第1页
第1页 / 共6页
实验四:SQL Serve中的嵌套查询、数据更新和视图.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
实验四:SQL Serve中的嵌套查询、数据更新和视图 一、 实验目的: 1. 掌握SQL语言的核心语句--SELECT语句的使用,具体为在SQL Server2005环境下采用Transact-SQL实现嵌套查询。 2. 掌握采用Transact-SQL实现数据更新。 3. 掌握采用Transact-SQL实现视图的定义、删除、查询与更新。 二、实验内容 按照《数据库系统概论》P82页中的学生课程数据库和P75页中的SPJ数据库完成以下查询 (一)嵌套查询中的存在量词 1. 查询还没有给任何工程供应过零件的供应商号sno和供应商名称sname,用带EXISTS谓词的子查询或相关联子查询实现。 select sno,sname from s where not exists( select * from spj where spj.sno = s.sno) 2. 查询使用了全部零件的工程号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)) 3. 查询至少选修了’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 o = '1' and o = '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)) (二)数据更新  1. 把全部蓝色零件的颜色改为红色; update p set p.color='蓝' where p.color='红'; select * from p; 2. 将S5供应给J1的零件P3改为由S1供应,请作必要的修改; update spj set sno='s1' where sno = 's5' and pno='p3' and jno = 'j1' ; select * from spj; 3. 从供应商关系中删除S3的记录,并从供应情况关系中删除相应的记录。 delete from spj where sno='s3'; delete from s where sno='s3' select * from s; select * from spj; 4. 删除所有信息系(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; 自行设计案例对学生-课程数据库的数据更新,并观察是否有违反数据的完整性约束。 (三)视图 1. 请为”一汽”工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询: 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'; 2. 创建一个学生成绩统计视图,包括学号,姓名,选课门数,平均分,最高分。(没有选课的学生不参加统计)。 create view s_g(sno,sname,sum,avg,max) as select student.sno,sname,count(cno),avg(grade),max(grade) from student,sc group by student.sno,sc.sno,student.sname; select * from s_g 三、实验要求 (1) 写出正确的Transact-SQL命令。 (2) 无须记录正确的查询结果。但要求记录实验过程中发生的有学习意义的错误及错误信息。 四、实验报告 根据以上实验内容的要求认真填写实验报告,记录所有的实现方法和运行结果,并记录实验过程中遇到的困难和解决问题的方法。 《数据库系统原理及应用》实验_4__报告 实验题目: 日期 班级 姓名 实验环境: 实验内容与完成情况(记录所有的实验过程): SELECT * FROM Student select JNO FROM SPJ WHERE NOT EXISTS ( SELECT * FROM J WHERE NOT EXISTS (SELECT * FROM P WHERE PNO=SPJ.PNO AND JNO=J.JNO)) SELECT DISTINCT SNO FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY WHERE NOT EXISTS (SELECT * FROM SC SCZ WHERE SCY.CNO='1' AND SCZ.CNO='2')) UPDATE P SET COLOR='红' WHERE COLOR='蓝' UPDATE SPJ SET SNO='S1' WHERE SNO='S5' AND PNO='P3' AND JNO='J1' delete from s where sno='s3' DELETE FROM Student WHERE Sdept='sc' CREATE VIEW IS_SPJ( SNO,PNO,QTY) AS SELECT SNO,PNO,QTY FROM SPJ WHERE JNO='J2' SELECT PNO,QTY FROM IS_SPJ SELECT SNO,PNO,QTY FROM IS_SPJ WHERE SNO='S2' CREATE VIEW IS_S AS SELECT Student.SNO,Sname,count(* Cno),avg(Grade),MAX(Grade) from Student,sc 出现的问题: 解决方案(列出遇到的主要问题和解决办法,列出没有解决的问题):
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服