写一个多表连接查询验证实验,内容:以课本上S、C、SC这个三个关系为例。完成1:姓名中包含“阳”字学生的所选择程成绩;2:按照学生统计某一门课程的成绩、并按照降序排列;3:输出数据库原理课程不及格学生信息;4:选出平均成绩优秀的学生,平均分>90的学生 5.选择了所有课程的学生信息,6没有选择任何一门课程学生的信息
时间: 2024-03-25 20:38:56 浏览: 59
数据库系统原理实验报告4-南京信息工程大学
好的,请稍等,我来为您写出多表连接查询验证实验的代码:
1. 姓名中包含“阳”字学生的所选择程成绩:
```sql
SELECT S.Sname, SC.Scourse, SC.Sgrade
FROM S, SC
WHERE S.Sno = SC.Sno AND S.Sname LIKE '%阳%';
```
2. 按照学生统计某一门课程的成绩,并按照降序排列:
```sql
SELECT S.Sname, SC.Sgrade
FROM S, SC
WHERE S.Sno = SC.Sno AND SC.Scourse = '数据库原理'
ORDER BY SC.Sgrade DESC;
```
3. 输出数据库原理课程不及格学生信息:
```sql
SELECT S.Sno, S.Sname, SC.Sgrade
FROM S, SC
WHERE S.Sno = SC.Sno AND SC.Scourse = '数据库原理' AND SC.Sgrade < 60;
```
4. 选出平均成绩优秀的学生,平均分>90的学生:
```sql
SELECT S.Sno, S.Sname, AVG(SC.Sgrade) AS AvgGrade
FROM S, SC
WHERE S.Sno = SC.Sno
GROUP BY S.Sno, S.Sname
HAVING AVG(SC.Sgrade) > 90;
```
5. 选择了所有课程的学生信息:
```sql
SELECT S.Sno, S.Sname
FROM S
WHERE NOT EXISTS (
SELECT C.Cno
FROM C
WHERE NOT EXISTS (
SELECT SC.Sno
FROM SC
WHERE SC.Sno = S.Sno AND SC.Cno = C.Cno
)
);
```
6. 没有选择任何一门课程学生的信息:
```sql
SELECT S.Sno, S.Sname
FROM S
WHERE NOT EXISTS (
SELECT C.Cno
FROM C
WHERE EXISTS (
SELECT SC.Sno
FROM SC
WHERE SC.Sno = S.Sno AND SC.Cno = C.Cno
)
);
```
以上就是多表连接查询验证实验的代码,希望能够帮到您!
阅读全文