2022年实验数据库综合查询.pdf

上传人:C****o 文档编号:14742089 上传时间:2022-05-06 格式:PDF 页数:12 大小:1,011.76KB
返回 下载 相关 举报
2022年实验数据库综合查询.pdf_第1页
第1页 / 共12页
2022年实验数据库综合查询.pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年实验数据库综合查询.pdf》由会员分享,可在线阅读,更多相关《2022年实验数据库综合查询.pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验:数据库综合查询实验六 : 数据库综合查询一、实验目的1.掌握 SELECT语句的基本语法与查询条件表示方法; 2.掌握查询条件种类与表示方法; 3.掌握连接查询的表示及使用; 4.掌握嵌套查询的表示及使用; 5.了解集合查询的表示及使用。二、实验环境已安装 SQL Server 2005 企业版的计算机 (13 台); 具有局域网环境 ,有固定 IP; 三、实验学时2 学时四、实验要求1.了解 SELECT语句的基本语法格式与执行方法; 2.了解连接查询的表示及使用; 3.了解嵌套查询的表示及使用; 4.了解集合查询的表示及使用; 5.完成实验报告 ; 五、实验内容及步骤以数据库原理实验

2、5 数据为基础 ,请使用 T-SQL 语句实现进行以下操作 : 1.查询以 DB_开头 ,且倒数第 3 个字符为 s的课程的详细情况 ; USE student SELECT 课程号 =Cno , 课程名 =Cname , 先行课号 =Cpno , 学分 =Ccredit FROM course WHERE SUBSTRING ( Cname , 1, 3)= DB_AND SUBSTRING (RIGHT(RTRIM ( Cname ),3),1, 1)= s 2.查询名字中第 2 个字为阳的学生姓名与学号及选修的课程号、课程名; USE student SELECT 姓名 =student

3、、Sname , 学号 =student、Sno , 课程号 =course、Cno , 课程名 =course、Cname FROM student, course, sc WHERE student、Sno =sc 、Sno AND 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询course、Cno =sc 、Cno AND SUBSTRING ( LTRIM ( student、Sname ), 2, 1)= 阳 3

4、.列出选修了数学或者大学英语的学生学号、姓名、所在院系、选修课程号及成绩 ; USE student SELECT 学号 =student、Sno , 姓名 =student、Sname , 所在院系 =student、Sdept, 课程号 =sc 、Cno , 成绩 =sc 、Grade FROM student, course, sc WHERE student、Sno =sc 、Sno AND course、Cno =sc 、Cno AND ( course、Cname = 数学 OR course、Cname = 大学英语 ) 4.查询缺少成绩的所有学生的详细情况; USE stude

5、nt SELECT student、* FROM student, sc WHERE student、Sno =sc 、Sno AND sc 、Grade ISNULL 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询5.查询与张力 (假设姓名唯一 )年龄不同的所有学生的信息; USE student SELECT* FROM student WHERE Sname != 张力 AND Sage !=(SELECT Sage

6、 FROM student WHERE Sname = 张力 ) 6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩 ; USE student DECLARE ZL_AVG INT SET ZL_AVG =( SELECTAVG( sc 、Grade ) FROM sc , student WHERE sc 、Sno =student、Sno AND student、Sname = 张力 GROUP BY sc 、Sno , student、Sno ) SELECTDISTINCT 学号 =student、Sno , 姓名 =student、Sname , 平均成绩 =A

7、VG( sc 、Grade ) FROM student, sc WHERE sc 、Sno =student、Sno GROUP BY sc 、Sno , student、Sno , student、Sname HAVINGAVG( sc 、Grade ) ZL_AVG 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询7.按照“学号 ,姓名,所在院系 ,已修学分”的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课

8、程学分之与; USE student SELECTDISTINCT 学号 =student、Sno , 姓名 =student、Sname , 所在院系 =student、Sdept, 已修学分 =SUM( CASE WHEN sc 、Grade =60 THEN course、Ccredit* 1 ELSE 0 END) FROM student, sc , course WHERE sc 、Sno =student、Sno AND sc 、Cno =course、Cno GROUP BY student、Sno , student、Sname , student、Sdept 8.列出只选修

9、一门课程的学生的学号、姓名、院系及成绩; USE student SELECT 学号 =student、Sno , 姓名 =student、Sname , 院系 =student、Sdept, 成绩 =sc 、Grade FROM student, sc WHERE student、Sno =sc 、Sno AND student、Sno =ANY( SELECT Sno FROM sc GROUP BY Sno HAVING COUNT( Cno )= 1) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -

10、第 4 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询9.查找选修了至少一门与张力选修课程一样的学生的学号、姓名及课程号; USE student SELECT 学号 =student、Sno , 姓名 =student、Sname , 课程号 =sc 、Cno FROM student, sc WHERE student、Sno =sc 、Sno AND student、Sname != 张力 AND sc 、Cno =ANY( SELECT sc 、Cno FROMsc , student WHEREsc 、Sno =student、Sno AND stud

11、ent、Sname = 张力 ) 10. 只选修“数据库”与“数据结构”两门课程的学生的基本信息; USE student SELECT 学号 =student、Sno , 姓名 =student、Sname , 学院 =student、Sdept, 选修课程 =course、Cname FROM student, sc , course, course b WHERE student、Sno =sc 、Sno AND course、Cno =sc 、Cno AND b、Cno =course、Cno AND( ( sc 、Sno =ANY( SELECT Sno FROM sc GROUP

12、BY Sno HAVINGCOUNT( Cno )= 1)AND ( course、Cname = 数据库 OR course、Cname = 数据结构 ) OR ( sc 、Sno =ANY( SELECT Sno FROM sc GROUP BY Sno HAVINGCOUNT( Cno )= 2)AND b、Cname = 数据库 AND course、Cname = 数据结构 ) 11. 至少选修“数据库”或“数据结构”课程的学生的基本信息; USE student SELECTDISTINCT 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师

13、归纳 - - - - - - - - - -第 5 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询 学号 =student、Sno , 姓名 =student、Sname , 学院 =student、Sdept FROM student, sc WHERE student、Sno =sc 、Sno AND sc 、Sno =ANY( SELECT sc 、Sno FROM course, sc WHERE course、Cno =sc 、Cno AND ( course、Cname = 数据库 OR course、Cname = 数据结构 ) 12. 列出所有课

14、程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩; USE student SELECT 课程号 =sc 、Cno , 课程名 =course、Cname , 学号 =sc 、Sno , 姓名 =student、Sname , 成绩 =sc 、Grade FROM sc , course, student WHERE sc 、Cno =course、Cno AND sc 、Sno =student、Sno 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 12 页 - - - - - -

15、 - - - - 实验:数据库综合查询ORDER BY sc 、Cno ASC 13. 查询只被一名学生选修的课程的课程号、课程名; USE student SELECT 课程号 =sc 、Cno , 课程名 =course、Cname FROM sc , course WHERE sc 、Cno =course、Cno GROUP BY sc 、Cno , course、Cname HAVINGCOUNT( sc 、Sno )= 1 ORDER BY sc 、Cno ASC 14. 检索所学课程包含学生张向东所学课程的学生学号、姓名; USE student SELECTDISTINCT 精

16、品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询 学号 =sc 、Sno , 姓名 =student、Sname FROM sc , student WHERE sc 、Sno =student、Sno AND student、Sname != 张向东 AND sc 、Cno =ANY( SELECT sc 、Cno FROM sc , student WHERE sc 、Sno =student、 Sno AND stude

17、nt、Sname = 张向东 ) 15. 使用嵌套查询列出选修了“数据结构”课程的学生学号与姓名; USE student SELECTDISTINCT 学号 =sc 、Sno , 姓名 =student、Sname FROM sc , student, course WHERE sc 、Sno =student、Sno AND sc 、Cno =course、Cno AND sc 、 Sno =ANY( SELECT sc 、Sno FROMsc , course WHEREsc 、Cno =course、Cno AND course、Cname = 数据结构 ) 16. 使用嵌套查询查询其

18、它系中年龄小于CS系的某个学生的学生姓名、年龄与院系; USE student SELECT 姓名 =Sname , 年龄 =Sage , 院系 =Sdept FROM student WHERE Sdept!= CSANDSage ANY( SELECTTOP4 Sage FROM student WHERESdept=CS) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询17. 使用 ANY、ALL 查询,列出其她院系

19、中比CS 系所有学生年龄小的学生; USE student SELECT* FROM student WHERESdept!= CSAND Sage 19 ORDER BY Sage ASC GO SELECT* FROM student WHERE Sdept=CS EXCEPT SELECT* FROM student WHERE Sage! 19 ORDER BY Sage ASC 21. 使用集合查询列出选修课程1 的学生集合与选修课程2 的学生集合的交集 ; USE student SELECT student、* FROM student, sc WHEREsc 、Sno =stu

20、dent、Sno ANDsc 、Cno =1 INTERSECT SELECT student、* FROM student, sc WHERE sc 、Sno =student、Sno AND sc 、Cno =222. 思考题 :按照课程名顺序显示各个学生选修的课程(如 200515001 数据库数据结构 数学); 一种笨拙的循环方法 : USE student DECLARE SNumber INT DECLARE TmpSno INT SET SNumber =0 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - -

21、 - - -第 10 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询WHILE SNumber 15 BEGIN SET TmpSno =( SELECTDISTINCTTOP ( SNumber +1) Sno FROM sc EXCEPTSELECTDISTINCTTOP ( SNumber ) Sno FROM sc ) SELECT 学号 =Sno , 姓名 =Sname , 第一门 =( SELECTTOP 1 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =T

22、mpSno), 第二门 =( SELECTTOP 2 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno EXCEPTSELECTTOP 1 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno), 第三门 =( SELECTTOP 3 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno EXC

23、EPTSELECTTOP 2 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno), 第四门 =( SELECTTOP 4 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno EXCEPTSELECTTOP 3 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno), 第五门 =( SELECT

24、TOP 5 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno EXCEPTSELECTTOP 4 course、Cname FROM sc , course WHERE sc 、Cno =course、Cno AND sc 、 Sno =TmpSno) FROM student WHERE Sno =TmpSno SET SNumber =SNumber +1 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 12 页 - - - - - - - - - - 实验:数据库综合查询END六、出现问题及解决办法如:某些查询操作无法执行 ,如何解决?精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 12 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁