实验数据库综合查询骄阳教育

上传人:公**** 文档编号:493148320 上传时间:2022-10-12 格式:DOC 页数:13 大小:322KB
返回 下载 相关 举报
实验数据库综合查询骄阳教育_第1页
第1页 / 共13页
实验数据库综合查询骄阳教育_第2页
第2页 / 共13页
实验数据库综合查询骄阳教育_第3页
第3页 / 共13页
实验数据库综合查询骄阳教育_第4页
第4页 / 共13页
实验数据库综合查询骄阳教育_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《实验数据库综合查询骄阳教育》由会员分享,可在线阅读,更多相关《实验数据库综合查询骄阳教育(13页珍藏版)》请在金锄头文库上搜索。

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

2、以下操作:1. 查询以DB_开头,且倒数第3个字符为s的课程的详细情况;USE studentSELECT 课程号=Cno,课程名=Cname,先行课号=Cpno,学分=CcreditFROM courseWHERESUBSTRING(Cname,1,3)=DB_ ANDSUBSTRING(RIGHT(RTRIM(Cname),3),1,1)=s2. 查询名字中第2个字为阳的学生姓名和学号及选修的课程号、课程名;USE studentSELECT 姓名=student.Sname,学号=student.Sno,课程号=course.Cno,课程名=course.CnameFROM studen

3、t,course,scWHEREstudent.Sno=sc.Sno ANDcourse.Cno=sc.Cno ANDSUBSTRING(LTRIM(student.Sname),2,1)=阳3. 列出选修了数学或者大学英语的学生学号、姓名、所在院系、选修课程号及成绩;USE studentSELECT学号=student.Sno,姓名=student.Sname,所在院系=student.Sdept,课程号=sc.Cno,成绩=sc.GradeFROM student,course,scWHEREstudent.Sno=sc.Sno ANDcourse.Cno=sc.Cno AND(cour

4、se.Cname=数学 OR course.Cname=大学英语)4. 查询缺少成绩的所有学生的详细情况;USE studentSELECT student.*FROM student,scWHEREstudent.Sno=sc.Sno ANDsc.Grade IS NULL5. 查询与张力(假设姓名唯一)年龄不同的所有学生的信息;USE studentSELECT *FROM studentWHERESname!=张力 ANDSage!=(SELECT Sage FROM student WHERE Sname=张力)6. 查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;

5、USE studentDECLARE ZL_AVG INTSET ZL_AVG=(SELECT AVG(sc.Grade)FROM sc,studentWHERE sc.Sno=student.Sno AND student.Sname=张力GROUP BY sc.Sno,student.Sno)SELECT DISTINCT学号=student.Sno,姓名=student.Sname,平均成绩=AVG(sc.Grade)FROM student,scWHERE sc.Sno=student.SnoGROUP BY sc.Sno,student.Sno,student.SnameHAVING

6、 AVG(sc.Grade)ZL_AVG7. 按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课程学分之和;USE studentSELECT DISTINCT学号=student.Sno,姓名=student.Sname,所在院系=student.Sdept,已修学分=SUM(CASE WHEN sc.Grade=60 THEN course.Ccredit*1 ELSE 0 END)FROM student,sc,courseWHERE sc.Sno=student.Sno AND sc.Cno=course.CnoGROUP BY stud

7、ent.Sno,student.Sname,student.Sdept8. 列出只选修一门课程的学生的学号、姓名、院系及成绩;USE studentSELECT学号=student.Sno,姓名=student.Sname,院系=student.Sdept,成绩=sc.GradeFROM student,scWHERE student.Sno=sc.Sno ANDstudent.Sno=ANY(SELECT Sno FROM sc GROUP BY Sno HAVING COUNT(Cno)=1)9. 查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;USE studentSEL

8、ECT学号=student.Sno,姓名=student.Sname,课程号=sc.CnoFROM student,scWHERE student.Sno=sc.Sno ANDstudent.Sname!=张力 ANDsc.Cno=ANY(SELECT sc.Cno FROM sc,student WHERE sc.Sno=student.Sno AND student.Sname=张力)10. 只选修“数据库”和“数据结构”两门课程的学生的基本信息;USE studentSELECT学号=student.Sno,姓名=student.Sname,学院=student.Sdept,选修课程=c

9、ourse.CnameFROM student,sc,course,course bWHERE student.Sno=sc.Sno ANDcourse.Cno=sc.Cno ANDb.Cno=course.Cno AND(sc.Sno=ANY(SELECT Sno FROM sc GROUP BY Sno HAVING COUNT(Cno)=1) AND(course.Cname=数据库 OR course.Cname=数据结构)OR(sc.Sno=ANY(SELECT Sno FROM sc GROUP BY Sno HAVING COUNT(Cno)=2) ANDb.Cname=数据库

10、AND course.Cname=数据结构)11. 至少选修“数据库”或“数据结构”课程的学生的基本信息;USE studentSELECT DISTINCT学号=student.Sno,姓名=student.Sname,学院=student.SdeptFROM student,scWHERE student.Sno=sc.Sno ANDsc.Sno=ANY(SELECT sc.SnoFROM course,scWHERE course.Cno=sc.Cno AND(course.Cname=数据库 OR course.Cname=数据结构)12. 列出所有课程被选修的详细情况,包括课程号、课

11、程名、学号、姓名及成绩;USE studentSELECT课程号=sc.Cno,课程名=course.Cname,学号=sc.Sno,姓名=student.Sname,成绩=sc.GradeFROM sc,course,studentWHERE sc.Cno=course.Cno AND sc.Sno=student.SnoORDER BY sc.Cno ASC13. 查询只被一名学生选修的课程的课程号、课程名;USE studentSELECT课程号=sc.Cno,课程名=course.CnameFROM sc,courseWHERE sc.Cno=course.CnoGROUP BY sc

12、.Cno,course.CnameHAVING COUNT(sc.Sno)=1ORDER BY sc.Cno ASC14. 检索所学课程包含学生张向东所学课程的学生学号、姓名;USE studentSELECT DISTINCT学号=sc.Sno,姓名=student.SnameFROM sc,studentWHERE sc.Sno=student.Sno ANDstudent.Sname!=张向东 ANDsc.Cno=ANY(SELECT sc.Cno FROM sc,studentWHERE sc.Sno=student.Sno AND student.Sname=张向东)15. 使用嵌套

13、查询列出选修了“数据结构”课程的学生学号和姓名;USE studentSELECT DISTINCT学号=sc.Sno,姓名=student.SnameFROM sc,student,courseWHERE sc.Sno=student.Sno ANDsc.Cno=course.Cno ANDsc.Sno=ANY(SELECT sc.Sno FROM sc,course WHERE sc.Cno=course.Cno AND course.Cname=数据结构)16. 使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;USE studentSELECT姓名=Sname,年

14、龄=Sage,院系=SdeptFROM studentWHERE Sdept!=CS AND SageANY(SELECT TOP 4 Sage FROM student WHERE Sdept=CS)17. 使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生;USE studentSELECT *FROM studentWHERE Sdept!=CS AND SageALL(SELECT Sage FROM student WHERE Sdept=CS)18. 分别使用连接查询和嵌套查询,列出与张力在一个院系的学生的信息;连接:USE studentSELECT a.*FROM student a,student bWHERE a.Sdept=b.Sdept AND a.Sname!=张力 AND b.Sname=张力嵌套:USE studentSELECT *FROM

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

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号