学生表Student(Sid, Sname, Sage, Ssex) Sid 学生编号, Sname 学生姓名, Sage 出生年月, Ssex学生性别--2.课程表Course(Cid, Cname, Tid) Cid 课程编号, Cname 课程名称, Tid 教师编号--3.教师表Teacher(Tid, Tname) Tid 教师编号, Tname 教师姓名--4.成绩表SC(Sid, Cid, score) Sid 学生编号, Cid 课程编号, score 分数 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列/////
时间: 2023-04-03 15:03:15 浏览: 262
可以回答这个问题。查询语句如下:
SELECT Cname, AVG(score) AS avg_score
FROM Course, SC
WHERE Course.Cid = SC.Cid
GROUP BY Course.Cid
ORDER BY avg_score DESC, Course.Cid ASC;
相关问题
[简答题] 对于上题的教务管理数据库: --1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号 --3.教师表 Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名 --4.成绩表 SC(SID,CID,score) --SID 学生编号
,CID 课程编号,score 成绩
以上教务管理数据库中的四个表可以通过以下 SQL 语句进行创建:
```sql
CREATE TABLE Student (
SID INT PRIMARY KEY,
Sname VARCHAR(20),
Sage DATE,
Ssex VARCHAR(2)
);
CREATE TABLE Course (
CID INT PRIMARY KEY,
Cname VARCHAR(20),
TID INT,
FOREIGN KEY (TID) REFERENCES Teacher(TID)
);
CREATE TABLE Teacher (
TID INT PRIMARY KEY,
Tname VARCHAR(20)
);
CREATE TABLE SC (
SID INT,
CID INT,
score INT,
PRIMARY KEY (SID, CID),
FOREIGN KEY (SID) REFERENCES Student(SID),
FOREIGN KEY (CID) REFERENCES Course(CID)
);
```
其中,Student 表的主键为 SID,Course 表的主键为 CID,Teacher 表的主键为 TID,SC 表的主键为 (SID, CID)。Course 表中的 TID 列为外键,引用自 Teacher 表的 TID 列。SC 表中的 SID 列和 CID 列都为外键,分别引用自 Student 表的 SID 列和 Course 表的 CID 列。这样设计可以保证数据的完整性和一致性。
--1.学生表 Student(Sld,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名Sage出生年月Ssex学生性别 --2.课程表 Course(Cld,Cname,Tld) --Cld课程编号,Cname课程名称Tld教师编号 --3.教师表 Teacher(Tld,Tname) --TId 教师编号Tname 教师姓名 :--4.成绩表 SC(Sld,CIdscore) --SId学生编号Cld课程编号score分数 day01 10查询没学过"张三"老师讲授的任一门课程的学生姓名 29.查询任何一门课程成绩在70分以上的姓名、课程名称和分数
查询没学过"张三"老师讲授的任一门课程的学生姓名:
```
SELECT DISTINCT Student.Sname
FROM Student, Course, Teacher, SC
WHERE Student.SId = SC.Sld
AND Course.CId = SC.Cld
AND Course.Tld = Teacher.TId
AND Teacher.Tname != '张三';
```
查询任何一门课程成绩在70分以上的姓名、课程名称和分数:
```
SELECT Student.Sname, Course.Cname, SC.score
FROM Student, Course, SC
WHERE Student.Sld = SC.Sld
AND Course.CId = SC.Cld
AND SC.score >= 70;
```
阅读全文
相关推荐















