有score表(sno,cno,degree),course表(cno,cname,tno),课程表建立每门课程平均成绩视图(课程名,平均成绩)
时间: 2024-03-25 16:36:43 浏览: 18
您可以使用以下 SQL 语句创建视图:
```
CREATE VIEW course_avg_degree AS
SELECT c.cname, AVG(s.degree) AS avg_degree
FROM score s
INNER JOIN course c ON s.cno = c.cno
GROUP BY c.cname;
```
这个视图会从 `score` 表和 `course` 表中联合查询出每门课程的平均成绩,并将结果按照课程名进行分组。您可以在需要使用这个平均成绩的地方直接使用这个视图,而不需要每次都写查询语句。
相关问题
利用sql server语言在下列表中创建学生选课成绩信息视图(sno,sname,sdept,cno,cname,grade)和创建教学基本信息视图(cno,cname,ctime,clocation,tno,tname,ttitle); 学生表stu (sno,sname ,ssex,sage ,sdept) 课程表course (cno,cname,clocation ) 选课表score (sno,cno,grade) 教师表teacher( tno,tname,ttitle) 教学表teaching(cno,tno,ctime,clocation)
创建学生选课成绩信息视图:
```
CREATE VIEW student_score AS
SELECT stu.sno, stu.sname, stu.sdept, score.cno, course.cname, score.grade
FROM stu
INNER JOIN score ON stu.sno = score.sno
INNER JOIN course ON score.cno = course.cno;
```
创建教学基本信息视图:
```
CREATE VIEW teaching_info AS
SELECT teaching.cno, course.cname, teaching.ctime, teaching.clocation, teacher.tno, teacher.tname, teacher.ttitle
FROM teaching
INNER JOIN course ON teaching.cno = course.cno
INNER JOIN teacher ON teaching.tno = teacher.tno;
```
以上代码是针对SQL Server语言的,如果需要在其他数据库中创建视图,语法可能会有所不同。
学生-课程关系模式如下: student(Sno,Sname,Ssex,Sbirthday,class) teacher(Tno,Tname,Tsex,Prof,Depart) course(Cno,Cname, Tno) score (Sno,Cno,Degree) 用SQL语句完成以下题目: (1)查询和“李军”同性别并同班的同学Sname. (2)查询所有选修“计算机导论”课程的“男”同学的成绩表。 (3)查询每门课的平均成绩。 (4)查询“95033”班学生的平均分。
好的,以下是针对你的问题的 SQL 语句:
(1)查询和“李军”同性别并同班的同学Sname。
```
SELECT Sname FROM student WHERE Ssex = (SELECT Ssex FROM student WHERE Sname = '李军') AND class = (SELECT class FROM student WHERE Sname = '李军');
```
(2)查询所有选修“计算机导论”课程的“男”同学的成绩表。
```
SELECT score.Sno, Sname, Degree
FROM student, score, course
WHERE student.Sno = score.Sno AND score.Cno = course.Cno AND course.Cname = '计算机导论' AND Ssex = '男';
```
(3)查询每门课的平均成绩。
```
SELECT Cname, AVG(Degree) AS AvgDegree
FROM score, course
WHERE score.Cno = course.Cno
GROUP BY Cname;
```
(4)查询“95033”班学生的平均分。
```
SELECT AVG(Degree) AS AvgDegree
FROM score, student
WHERE score.Sno = student.Sno AND class = '95033';
```
希望能够帮助到你!