问答题
2分
设有表Student(Sno,Sname)、SC(Sno,Cno,Grade),现要查询没选C01课程的学生姓名,请补全下列语句:SELECT Sname FROM St...
设有表Student(Sno,Sname)、SC(Sno,Cno,Grade),现要查询没选C01课程的学生姓名,请补全下列语句:
SELECT Sname FROM Student WHERE NOT{blank} (
SELECT * FROM SC WHERE Cno = 'C01'
AND Student.Sno = SC.Sno )
SELECT Sname FROM Student WHERE NOT{blank} (
SELECT * FROM SC WHERE Cno = 'C01'
AND Student.Sno = SC.Sno )
参考解析: 【答案】EXISTS
【解析】本题主要是查询Student表中是否存在SC表中一条特定的记录,在SQL语句中被称为存在性测试。SQL语句通过子查询,使用EXISTS谓词进行存在性测试。其形式是:
Where [NOT] EXISTS (子查询)
带EXISTS谓词的子查询不返回查询的结果,只产生逻辑真值和逻辑假值。
EXISTS的含义是:当子查询中有满足条件的数据时,EXISTS返回真值,否则返回假值。
NOT EXISTS的含义是:当子查询中有满足条件的数据时,NOT EXISTS返回假值,当子查询中不存在满足条件的数据时,NOT EXISTS返回真值。