SQL查询与操纵练习与测验.ppt
文本预览下载声明
* 江西财经大学信息管理学院 杨波 * 江西财经大学信息管理学院 杨波 * 数据库应用 SQL查询与操纵 (练习与测验) * 使用的关系模式 * 回顾:多表查询 查询每门课程的修读人数和平均成绩,并按平均成绩由高到低排序,要求显示课程号和课程名称; 查询有2门及2门以上课程及格(60分及以上)的同学的学号、姓名和及格课程门数,并按及格课程门数由多到少排序。 select 字段列表 from 数据表列表 where 多表间的自然连接 和 查询条件 group by 分组项 having 输出条件 order by 排序依据 asc | desc * 查询每门课程的修读人数和平均成绩,并按平均成绩由高到低排序,要求显示课程号和课程名称; 查询有2门及2门以上课程及格(60分及以上)的同学的学号、姓名和及格课程门数,并按及格课程门数由多到少排序。 * ①求每门课程的修读人数和平均成绩,并按平均成绩由高到低排序,要求显示课程号和课程名称(多表查询) select 成绩表.课程号, 课程名, count(*) as 修读人数, avg(成绩) as 平均成绩 from 成绩表,课程表 where 成绩表.课程号=课程表.课程号 group by 成绩表.课程号, 课程名 order by avg(成绩) desc * ②显示有2门及2门以上课程及格(60分及以上)的同学的学号、姓名和及格课程门数,并按及格课程门数由多到少排序(多表查询) select 成绩表.学号, 姓名, count(*) as 及格课程数 from 成绩表, 学生表 where 成绩表.学号=学生表.学号 and 成绩=60 group by 成绩表.学号, 姓名 having count(*) = 2 order by count(*) desc * 讨论 问题1:查询同时选修了“A0101”和“C0101”课程的同学的学号、所选课程的课程号和成绩。 问题2:查询既没选修“计算机引论”,也没有选修“数据结构”的同学的学号、姓名、班级号、专业和所在学院。 * 讨论 问题1:查询同时选修了“A0101”和“C0101”课程的同学的学号、所选课程的课程号和成绩。 select 学号,课程号, 成绩 from 成绩表 where 课程号 = A0101 select 学号,课程号, 成绩 from 成绩表 where 课程号 = C0101 * 讨论 问题1:查询同时选修了“A0101”和“C0101”课程的同学的学号、所选课程的课程号和成绩。 select 学号,课程号, 成绩 from 成绩表 where 课程号 = A0101 and 课程号 = C0101 不正确 * 讨论 问题1:查询同时选修了“A0101”和“C0101”课程的同学的学号、所选课程的课程号和成绩。 select 学号,课程号, 成绩 from 成绩表 where 课程号 = A0101 or 课程号 = C0101 不正确 * 问题1:查询同时选修了“A0101”和“C0101”课程的同学的学号,所选课程的课程号和成绩 select 学号 from 成绩表 where 课程号=A0101 and 学号 in (select 学号 from 成绩表 where 课程号=C0101) 问题:这里没有显示其选修的课程号和成绩! * 问题1:查询同时选修了“A0101”和“C0101”课程的同学的学号,所选课程的课程号和成绩 select 学号,课程号,成绩 from 成绩表 where 课程号=A0101 and 学号 in (select 学号 from 成绩表 where 课程号=C0101) 问题:这里只显示了A0101的成绩! * 查询同时选修了“A0101”和“C0101”课程的同学的学号,所选课程的课程号和成绩 sele
显示全部