实训二 SQL 数据查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训二 SQL 数据查询
[实验目的]:
•熟练掌握条件查询、分组查询以及查询的排序;
•灵活运用集函数及统计汇总查询;
•掌握多表之间的等值连接与非等值连接、自身连接;
•使用多种子查询进行查询。
[实验要求]:
利用实验一中创建的四个基本表
学生情况基本表 s (sno,sname,sex,age,deptno)
课程基本表 c (cno,cname,teacher)
选课基本表 sc (sno,cno,score)
系别基本表 d (deptno,deptname,addr)
用SQL语句完成如下操作。
[实验步骤]:
一、基本查询
1、查询全体学生的学号、姓名和年龄,并分别为三列指定别名;
2、查询选修了课程的学生号;
二、条件查询
1、查询选修课程号为‘ IS01'的学生的学号和成绩;
2、查询选修课程号为IS01或IS02且分数大于等于85分学生的学号、课程号和成绩;
3、查询既不是女生,年龄也不是 20岁的学生;
4、查询所有计算机系开设的课程;(注:课程编号的规则为:系号(例如:IS、CS、MA)+序列号(01、02、03┄),例如:CS01,CS02,IS01等等)
三、常用集函数及统计汇总查询
1、求学号为 02011201学生的总分和平均分;
2、求选修课程号为 IS01的最高分、最低分及之间相差的分数,并分别为三列指定别名。
3、统计有成绩同学的人数;
4、求女学生总数和平均年龄;
四、分组查询及排序
1、查询选修两门以上课程的学生的学号和选课门数;
2、查询平均成绩大于 70分的课程号和平均成绩;
3、查询有3门以上课程成绩大于90分的学生的学号及课程数;
4、列出计算机系所开课程各科的最高成绩、最低成绩和平均成绩。
如果某门课程的成绩不全,则该课程不予统计,结果按Cno升序排列。
五、等值连接 /非等值连接、自身连接
1、检索至少选修了课程号为IS01号和IS02号的学生学号;(表的自身连接实现)
2、输出学生成绩在 80—90分之间的学生名单,列出学号、姓名、分数和课程名。
3、检索选修了“刘平”老师所讲课程的学生的学号、姓名及成绩。
六、子查询
1、输出刘力同学所在系的学生清单;(使用IN和复合条件查询分别实现)
2、使用 ALL输出所有成绩都高于90分的学生名单,列出其学生学号、姓名、分数和课程号;
3、分别使用IN和EXISTS检索至少选修了课程号为IS01和ISO2的学生学号;
4、查询没有选修课程号为IS01,也没有选修课程号为ISO2的学生的学号、课程号和成绩;
5、检索所有课程都及格的学生的平均成绩;(至少有四种方法可以实现此查询)。