学生表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 10:03:15 浏览: 228
可以回答这个问题。查询语句如下:
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 列。这样设计可以保证数据的完整性和一致性。
阅读全文