学生表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 12:03:15 浏览: 104
可以回答这个问题。查询语句如下:
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;
相关问题
学生表S,包含Sid,Sname,Sage,Ssex,Sclass
好的,以下是查询各个班级男女学生的人数的 SQL 语句:
```
SELECT Sclass, Ssex, COUNT(*) AS num
FROM S
GROUP BY Sclass, Ssex;
```
这条语句会按照班级和性别分组,然后统计每个组中学生的数量。查询结果会显示每个班级男女学生的人数。
[简答题] 对于上题的教务管理数据库: --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 列。这样设计可以保证数据的完整性和一致性。