实验4多表查询-连接查询和嵌套查询.doc

实验4多表查询-连接查询和嵌套查询.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验4 多表查询-连接查询和嵌套查询 一、目的和要求 (1)掌握简单的多表连接查询,了解多表查询的目的。 (2)掌握嵌套查询的用法。 (3)掌握带有IN谓词、ANY、SOME、ALL谓词、EXISTS谓词实现嵌套查询的区别。 (4)理解嵌套查询时,=和IN的区别。 (5)掌握外连接的使用方法和目的。 (6)理解嵌套查询和连接查询的区别和效率。 (7)掌握利用AS给表重新命名的方法和目的。 二、背景知识 同实验3。 三、实验内容 要求在查询分析器窗口中选择XSGL数据库为当前数据库,且使用SQL语句练习多表查询、嵌套查询。 四、实验步骤 1.查询学号为的同学的每门课的成绩,输出格式为:学号,课程名,课程成绩。 SELECT SNO AS 学号, CNAME AS 课程名 ,GRADE AS 课程成绩 FROM sc,course WHERE sc.CNO=course.CNO AND SNO2.查询每个学生的每门课程的成绩,要求输出学号,课程名,成绩。 SELECT SNO,CNAME,GRADE FROM sc, course WHERE sc.CNO=course.CNO 3.查询每个学生的每门课程的成绩,要求输出学号,姓名,课程名,成绩。 SELECT student.SNO,SNAME,CNAME,GRADE FROM sc, course,student WHERE sc.CNO=course.CNO AND student.SNO=sc.SNO 4.查询选修了线性代数课程的学生学号、姓名。 SELECT student.SNO,SNAME FROM sc,course,student WHERE sc.SNO=student.SNO AND sc.CNO=course.CNO AND course.CNAME=线性代数 5.查询线性代数的所有授课班级的平均成绩,并列出授课班号、教师名、平均成绩,且按平均成绩排序。 SELECT sc.CNO,course.TNAME,AVG(GRADE) AS 平均成绩 FROM sc,course WHERE sc.CNO=course.CNO AND CNAME=线性代数 GROUP BY sc.CNO,course.TNAME ORDER BY AVG(GRADE) 6.使用多表连接方法,查询和学号为的同学同年同月同日出生的所有学生的学号、姓名、生日。 SELECT a.SNO,a.SNAME,a.BIRTHDAY FROM student AS a, student b WHERE a.BIRTHDAY =b.BIRTHDAY AND b.SNO7.使用嵌套查询方法,查询和学号为的同学同年同月同日出生的所有学生的学号、姓名、生日。 SELECT SNO,SNAME,BIRTHDAY FROM student WHERE BIRTHDAY = ( SELECT BIRTHDAY FROM student WHERE SNO) 说明:该嵌套子查询只执行一次,整个查询效率比第6题快 8.使用嵌套查询方法,查询“赵蓉”教师任课的学生成绩,并按成绩递增排列。 SELECT CNO,SNO,GRADE FROM sc WHERE CNO IN ( SELECT CNO FROM course WHERE TNAME=赵蓉 ) ORDER BY GRADE 说明:该嵌套子查询只执行一次,执行效率比多表连接查询效率高 9. 使用嵌套查询方法,查询课程最低分大于70,最高分小于90的学生学号和姓名。 SELECT SNO,SNAME FROM student WHERE SNO IN ( SELECT SNO FROM sc GROUP BY sc.SNO HAVING MIN(GRADE)70 AND MAX(GRADE)90 ) 10.用嵌套法查询选修了“线性代数“的学生学号和姓名。 SELECT SNO,SNAME FROM student WHERE SNO IN ( SELECT SNO FROM sc WHERE CNO IN ( SELECT CNO FROM course WHERE CNAME=线性代数 ) ) 说明:该查询使用了两层嵌套查询,查询次序为从里向外执行 11.从选修’218801’课程的同学中,选出成绩高于’季莹’的学生的学号和成绩。 SELECT SNO,GRADE FROM sc WHERE CNO=

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档