选修了 “SQL SERVER”课程的学生,则显示 学号,姓名,性别,课号,课名,成绩信息,否则显示”输入错误或者没有人选修SQL SERVER课程”
时间: 2023-12-04 15:02:38 浏览: 81
嵌套查询-数据库幻灯片
好的,以下是可以实现这个功能的 SQL 语句:
```
SELECT student.学号, student.姓名, student.性别, course.课号, course.课名, score.成绩
FROM student
INNER JOIN score ON student.学号 = score.学号
INNER JOIN course ON score.课号 = course.课号
WHERE course.课名 = 'SQL SERVER'
UNION
SELECT '输入错误或者没有人选修SQL SERVER课程' AS 错误信息
FROM dual
WHERE NOT EXISTS (
SELECT *
FROM course
WHERE course.课名 = 'SQL SERVER'
);
```
这个 SQL 语句使用了联结、条件查询和 UNION 操作符。它首先从 `student`、`course` 和 `score` 三个表中联结出选修了 `SQL SERVER` 课程的学生的信息,并将学号、姓名、性别、课号、课名和成绩作为结果返回。如果没有学生选修了 `SQL SERVER` 课程,则使用 UNION 操作符将一个包含错误信息的查询结果集合并到结果中。注意,这个查询中使用了 `dual` 表来表示一个虚拟表,用于在 SELECT 语句中返回常量值。
阅读全文