学生表:S(Sno,Sname,Sex,Sage, Sdept) 课程表:C(Cno,Cname,Ccredit)Ccredit 学生选课表:SC(Sno,Cno,Grade) 建立由学号和平均成绩两个字段组成的视图 student_gr,并且平均成绩88以上。 (全部小写) create___student_gr _______select sno,avg(grade) from sc group by _ having avg(grade)>88;
时间: 2023-05-19 08:07:14 浏览: 242
好的,以下是我给出的回答:
create view student_gr as select sno,avg(grade) from sc group by sno having avg(grade)>88;
这是一个用于创建视图 student_gr 的 SQL 语句,它会从 SC 表中选取学号和成绩,然后按照学号进行分组,并计算每个学生的平均成绩。最后,只有平均成绩大于 88 的学生才会被包含在视图中。
相关问题
学生-课程数据库 • 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) • 课程表:Course(Cno,Cname,Cpno,Ccredit) • 学生选课表:SC(Sno,Cno,Grade)
• Sno:学生编号,主键
• Sname:学生姓名
• Ssex:学生性别
• Sage:学生年龄
• Sdept:学生所在院系
• Cno:课程编号,主键
• Cname:课程名称
• Cpno:先修课程编号,若无先修课程则为NULL
• Ccredit:课程学分
• Grade:学生选课成绩,若未考试则为NULL
注:SC表是学生选课表,其中Sno和Cno为外键,分别指向Student表和Course表的主键。
student表:Sno,sname,sage,ssex,sdept;course表:cno,cname,cpno,ccredit;SC表:sno,sno,grade查询至少有一门课与学号为"200215121 "的同学所学相同的同学
您可以使用如下SQL语句来查询至少有一门课与学号为"200215121 "的同学所学相同的学生:
```
SELECT DISTINCT s2.sno, s2.sname
FROM student s1, student s2, SC c1, SC c2
WHERE s1.sno = '200215121'
AND s1.sno = c1.sno
AND c1.cno = c2.cno
AND c2.sno = s2.sno
AND s1.sno <> s2.sno;
```
解释一下上述SQL语句:
1. 首先从student表中找到学号为“200215121”的学生,记为s1;
2. 然后从SC表中找到与s1学号相同的选课记录c1;
3. 接着从SC表中找到与c1所对应的课程相同的其他选课记录c2;
4. 然后从student表中找到与c2对应的学生,记为s2;
5. 最后输出s2的学号和姓名,注意要去重。
这样,就可以查询到至少有一门课与学号为"200215121 "的同学所学相同的学生了。