现有学生-课程的关系模型如下: 学生表(学号,姓名,性别,年龄,院系):Student(SNO,SName,SSex,SAge,SDept) 课程表(课程号,课程名称,先修课,学分):Course(CNO,CName,CPNO,CCredit) 学生选课表(学号,课程号,成绩):SC(SNO,CNO,Grade) 用SQL语句实现下列题目:查询所有选修了课程号为“C08”的课程的学生的学号,姓名和成绩,并按成绩从高到低排序
时间: 2023-11-16 18:15:18 浏览: 530
可以使用如下SQL语句实现:
```
SELECT Student.SNO, SName, Grade
FROM Student, SC
WHERE Student.SNO = SC.SNO AND CNO = 'C08'
ORDER BY Grade DESC;
```
这个语句中,首先我们通过连接学生表(Student)和选课表(SC),找到所有选修了课程号为“C08”的课程的学生。然后我们选择需要的列(SNO, SName, Grade),并按照成绩从高到低排序。
相关问题
创建数据库表结构如下: 学生表:STUDENTS SNO(学号),SNAME(学生姓名),SSEX(性别),SAGE(年龄) PK:SNO SSEX:[男,女] SAGE:[10,45]
好的,这是一个关于数据库表结构的问题。您可以使用 SQL 语句来创建该表结构,具体如下:
CREATE TABLE STUDENTS (
SNO INT PRIMARY KEY,
SNAME VARCHAR(20),
SSEX VARCHAR(2) CHECK (SSEX IN ('男', '女')),
SAGE INT CHECK (SAGE BETWEEN 10 AND 45)
);
这是一个简单的学生表,其中包括学号、学生姓名、性别和年龄等字段。SNO 是主键,确保每个学生具有唯一的学号。SSEX 和 SAGE 均设置了检查约束,以确保性别为“男”或“女”,年龄在 10 到 45 岁之间。希望我的回答对您有所帮助。
学生-课程关系模式如下: 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';
```
希望能够帮助到你!
阅读全文