题目
对于学生选课数据库的三个基本表:学生表S (SNO, SNAME, SSEX, SAGE, SDEPT),属性分别为学号,姓名,性别,年龄和所在系;课程表C (CNO, CNAME, CPNO, CCREDIT),属性分别为课程号,课程名,先修课和学分;选课表SC (SNO, CNO, GRADE),属性分别为学号,课程号和成绩。请用SQL语言完成以下各项作:(1) 查询选课表中填写了成绩的学生选课信息,并按照成绩从高到低进行排列。
对于学生选课数据库的三个基本表: 学生表S (SNO, SNAME, SSEX, SAGE, SDEPT),属性分别为学号,姓名,性别,年龄和所在系; 课程表C (CNO, CNAME, CPNO, CCREDIT),属性分别为课程号,课程名,先修课和学分; 选课表SC (SNO, CNO, GRADE),属性分别为学号,课程号和成绩。 请用SQL语言完成以下各项作: (1) 查询选课表中填写了成绩的学生选课信息,并按照成绩从高到低进行排列。
题目解答
答案
根据题目要求,需查询选课表SC中成绩不为空的记录,并按成绩降序排列。
SQL语句如下:
```sql
SELECT *
FROM SC
WHERE GRADE IS NOT NULL
ORDER BY GRADE DESC;
```
该语句通过`WHERE GRADE IS NOT NULL`筛选出有成绩的记录,并用`ORDER BY GRADE DESC`实现按成绩降序排序。
解析
本题考查 SQL 语言中数据查询、条件筛选和排序的知识。解题思路如下:
- 首先明确要查询的是选课表
SC中的学生选课信息,所以使用SELECT *来选取该表中的所有列。 - 题目要求查询填写了成绩的学生选课信息,这意味着成绩列
GRADE不能为NULL。在 SQL 中,使用WHERE GRADE IS NOT NULL来筛选出GRADE列不为空的记录。 - 最后,需要按照成绩从高到低进行排列,在 SQL 里使用
ORDER BY GRADE DESC来实现降序排序,其中DESC表示降序。