ZKX's LAB

学生查成绩表 数据库多表查询,学生表,课程表,成绩表

2020-08-10知识12

sql语句科目表学生表和成绩表的查询 每科的总成绩?查询它干什么?要查的话这样查:SELECT 科目表.KUMUID,KUMUName,SUM(CHENJI)AS SUM_CHENJI,AVG(CHENJI)AS AVG_CHENJIFROM 科目表,成绩表WHERE 科目表.KUMUID。sql查询学生成绩表最高分数 select a.*from student as a,(select subject,max(score)as maxscore from student group by subject)as bwhere a.subject=b.subject and a.score=b.maxscoresql就学生成绩表的查询问题 以下这些英文都是学生表的常用的,希望你能看懂1,查询选了所有课的学生select snamefrom studentwhere snum=(select sc.snumfrom scwhere sc.snum=student.snumgroup by sc.snumhaving count(*)=N)2.查询不及格学生姓名和挂科的科目select sname,cnamefrom student,sc,coursewhere sc.snum=student.snumand sc.cnum=course.cnumand score3.查询每个课程选修人数和挂科人数(这个比较复杂)select cname,count(不及格)as 选修人数,sum(不及格)as 不及格人数from(select cname,case when score不及格from sc,student,coursewhere sc.cnum=course.cnumand sc.snum=student.snum)AS abcgroup by cnamesql语句科目表学生表和成绩表的查询 每科的总成绩?查询它干什么?要查的话这样查:SELECT 科目表.KUMUID,KUMUName,SUM(CHENJI)AS SUM_CHENJI,AVG(CHENJI)AS AVG_CHENJIFROM 科目表,成绩表WHERE 科目表.KUMUID=成绩表.KUMUIDGROUP BY 科目表.KUMUID,KUMUName由于是查每科的总成绩和平均分,所以和学生没有关系,不用关联学生表不过我怀疑你是不是想查每个学生的总成绩和平均分,是这样查的:SELECT 学生表.UID,UName,SUM(CHENJI)AS SUM_CHENJI,AVG(CHENJI)AS AVG_CHENJIFROM 学生表,成绩表WHERE 学生表.UID=成绩表.UIDGROUP BY UID,UName对于楼主的补充的回答:你所要的SQL语句我已经写了,这个查询由于是查询每个科目的总成绩,所以不需要查询学生的姓名,所以不应关联学生表。只需要用成绩表关联科目表(目的是查询出科目的名称)。然后直接使用分组汇总(就是用 GROUP BY 子句和SUM、AVG两个聚合函数实现的)。分组查询是一种最基本的查询,现在的主流数据库都支持它。所以每一个学习数据库的人都应该很好的理解它。根据学生表,课程表和成绩表,查询学生的学号,姓名,课程号,课程名和分数。(多表查询? 直接将三表关联查询就可以了selectb.姓名,c.课程,a.成绩from成绩表a,学生表b,课程表cwherea.学生学号=b.学号anda.课程编号=c.编号anda.成绩<;60

#课程表#课程

随机阅读

qrcode
访问手机版