来点数据库选择题
时间: 2023-08-07 15:21:24 浏览: 45
好的,以下是一道数据库选择题:
假设有以下关系模式:
```
Student(SID, SName, Age, Gender)
Course(CID, CName, Credit)
Score(SID, CID, Score)
```
请问以下哪个SQL语句可以查找选修了所有课程的学生?
A.
```
SELECT SID, SName
FROM Student
WHERE NOT EXISTS (
SELECT CID
FROM Course
WHERE NOT EXISTS (
SELECT *
FROM Score
WHERE Score.SID = Student.SID AND Score.CID = Course.CID
)
)
```
B.
```
SELECT SID, SName
FROM Student, Score
WHERE Student.SID = Score.SID
GROUP BY SID, SName
HAVING COUNT(DISTINCT Score.CID) = (
SELECT COUNT(*)
FROM Course
)
```
C.
```
SELECT SID, SName
FROM Student
WHERE NOT EXISTS (
SELECT CID
FROM Course
WHERE NOT EXISTS (
SELECT *
FROM Score
WHERE Score.SID = Student.SID AND Score.CID = Course.CID
)
) AND (
SELECT COUNT(*)
FROM Score
WHERE Score.SID = Student.SID
) = (
SELECT COUNT(*)
FROM Course
)
```
D.
```
SELECT SID, SName
FROM Student
WHERE (
SELECT COUNT(*)
FROM Score
WHERE Score.SID = Student.SID
) = (
SELECT COUNT(*)
FROM Course
)
```
请从 A、B、C、D 四个选项中选择一个正确的答案。