以课本上S、 C、SC这个三个关系为例。完成1:姓名中包含“阳”字学生的所选择程成绩;2:按照学生统计某一门课程的成绩、并按照降序排列;3:输出数据库原理课程不及格学生信息;4:选出平均成绩优秀的学生,平均分>90的学生 5. 选择了所有课程的学生信息,6 没有选择任何一门课程学生的信息用sql语句
时间: 2024-03-25 20:38:16 浏览: 88
好的,根据您的问题,我可以给出以下 SQL 语句:
1. 姓名中包含“阳”字学生的所选择程成绩:
```
SELECT SC.Grade
FROM SC
JOIN S ON SC.Sno = S.Sno
WHERE S.Sname LIKE '%阳%' -- 姓名中包含“阳”字的学生
```
2. 按照学生统计某一门课程的成绩,并按照降序排列:
```
SELECT S.Sno, S.Sname, SC.Grade
FROM SC
JOIN S ON SC.Sno = S.Sno
WHERE SC.Cno = '课程编号' -- 某一门课程的编号
ORDER BY SC.Grade DESC -- 按照成绩降序排列
```
3. 输出数据库原理课程不及格学生信息:
```
SELECT S.Sno, S.Sname, SC.Grade
FROM SC
JOIN S ON SC.Sno = S.Sno
JOIN C ON SC.Cno = C.Cno
WHERE C.Cname = '数据库原理' AND SC.Grade < 60 -- 数据库原理课程不及格学生
```
4. 选出平均成绩优秀的学生,平均分>90的学生:
```
SELECT S.Sno, S.Sname, AVG(SC.Grade) AS AvgGrade
FROM SC
JOIN S ON SC.Sno = S.Sno
GROUP BY S.Sno, S.Sname
HAVING AVG(SC.Grade) > 90 -- 平均成绩>90的学生
```
5. 选择了所有课程的学生信息:
```
SELECT S.Sno, S.Sname
FROM S
WHERE NOT EXISTS (
SELECT C.Cno
FROM C
WHERE NOT EXISTS (
SELECT SC.Cno
FROM SC
WHERE SC.Sno = S.Sno AND SC.Cno = C.Cno
)
)
```
6. 没有选择任何一门课程学生的信息:
```
SELECT S.Sno, S.Sname
FROM S
WHERE NOT EXISTS (
SELECT SC.Cno
FROM SC
WHERE SC.Sno = S.Sno
)
```
以上是针对您问题的 SQL 语句,希望对您有所帮助。
阅读全文