表格查询,以学生信息表StuInfo和学生成绩表Grade为例,可以适用于任何相似结构。给定学生信息表、学生成绩表,按要求完成查询。表中的列名称为字段。
表1 学生信息表(StuInfo)
学号(sno) 姓名(name) 专业(major)
9527 Scott Computer Science
9528 Tiger Software
表2 学生成绩表(Grade)
学号(sno) 课程名称(course) 成绩(score)
9527 Advanced Math 92
9528 Advanced Math 88
9527 Software Engineering 79
9527 College English 87
9528 C Programming 78
9528 Database 91
查询方案:
(1)单表查询: select 字段1,字段2,…,字段n from 表名 [where 字段[>,=,<]值]
从一个表中查找内容,如从Grade表中查询成绩大于90的学号、课程名称、成绩:
语法:select sno,course,score from Grade where score > 90;
输出:sno,course,score
9527 Advanced Math 92
9528 Database 91
(2)多表查询:语句select 表1.字段1, 表1.字段2,…, 表1.字段n, 表2.字段1, 表2.字段2,…, 表2.字段m from 表1,表2 where 表1.字段k=表2.字段p and 条件
如,查询成绩低于80分的学生学号、姓名、课程名称、成绩。
需要查询的信息来自于两个表,所以需要连接2个表进行查询。
select StuInfo.sno,StuInfo.name,Grade.course,Grade.score from StuInfo,Grade where StuInfo.sno=Grade.sno and Grade.score<80;
输出:
sno,name,course,score
9527 Scott Software Engineering 79
9528 Tiger C Programming 78
要求:
(1)完成单表查询,输入查询语句并解析,输出查询结果。
(2)完成多表查询,输入查询语句并解析,输出查询结果。
(3)输入查询语句,统计“Tiger”选修课程的平均分
(4)输入查询语句,统计每个专业每门课程平均成绩,并按专业、平均成绩进行降序排列(按专业的降序排序,如果专业相同,则按平均分降序排序)。