列出选修了"001"课程的学生,按成绩的降序排列, SQL语句是 SELECT SNO,GRADE FROM SC WHERE CNO ORDER BY GRADE 。
时间: 2024-04-04 10:31:13 浏览: 90
抱歉,你的 SQL 语句有误。按照你的 SQL 语句,缺少了对 CNO 的限制条件,无法得到正确的结果。正确的 SQL 语句应该是:
SELECT SNO, GRADE FROM SC WHERE CNO = '001' ORDER BY GRADE DESC;
这条语句可以列出选修了课程编号为“001”的学生,并按照成绩的降序排列。
相关问题
示例数据库DB_SC中,有三个表: 学生信息表:Student(Sno,Sname,Sage,Ssex,Sdept) 课程信息表:Course(Cno,Cname,Cpno,Ccredit) 选修记录表:SC(Sno,Cno,Grade) Sno是学生学号,Sname是学生姓名,Sage学生年龄,Ssex是学生性别,Sdept学生所在系,Cno是课程号,Cname是课程名,Grade是学生成绩。查询成绩大于等于85分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果
可以使用以下 SQL 语句查询:
SELECT Student.Sname, SC.Cno, SC.Grade
FROM Student, SC
WHERE Student.Sno = SC.Sno AND SC.Grade >= 85
ORDER BY SC.Grade DESC;
该语句会返回成绩大于等于85分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。其中,通过 `WHERE` 子句连接了 `Student` 和 `SC` 两个表,通过 `Student.Sno = SC.Sno` 来关联学生信息表和选修记录表。`SC.Grade >= 85` 用来过滤成绩大于等于85分的记录。最后使用 `ORDER BY` 子句按成绩的降序排列结果。
对于教学数据库的三个基本表: Stdent(SNO,SNAME,AGE,SEX) SC(SNO,CNO,GRADE) Course(CNO,CNAME,TEACHER) 试用SQL的查询语句表达下列查询5)统计每门课程的学生选修人数(超过15人的课程才统计)。要求显示课程号,课程名和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
以下是符合要求的SQL查询语句:
```
SELECT Course.CNO, Course.CNAME, COUNT(*) AS num
FROM Course, SC
WHERE Course.CNO = SC.CNO
GROUP BY Course.CNO, Course.CNAME
HAVING COUNT(*) > 15
ORDER BY num DESC, Course.CNO ASC;
```
解释一下每个语句的含义:
- `SELECT Course.CNO, Course.CNAME, COUNT(*) AS num`:选择要查询的列,包括课程号、课程名和选修人数(使用 COUNT(*) 统计)。
- `FROM Course, SC`:查询的数据来源为 Course 表和 SC 表。
- `WHERE Course.CNO = SC.CNO`:将 Course 表和 SC 表通过课程号关联起来。
- `GROUP BY Course.CNO, Course.CNAME`:按照 Course 表中的课程号和课程名分组。
- `HAVING COUNT(*) > 15`:只保留选修人数超过 15 人的课程。
- `ORDER BY num DESC, Course.CNO ASC`:按照选修人数降序排列,如果人数相同则按照课程号升序排列。
阅读全文