A-A+

假设供应商S和供应情况SPJ的关系模式分别为S(Sno Sname Status City)

2022-08-06 00:26:54 问答库 阅读 173 次

问题详情

假设供应商S和供应情况SPJ的关系模式分别为S(Sno,Sname,Status,City)和SPJ(Sno,Pno,Jno,Qty)。SQL语句(25)不能正确地查询出“零件号Pno等于"P3"的供应商名Sname",而(26)能正确查询的关系代数表达式。
A.SELECT DISTINCT Sname FROM S WHERERE 0 <(SELECT COUNT(*)FROM SPJ WHERE S. Sno = SPJ. Sno AND SPJ. Pno = "P3")
B.SELECT DISTINCT Sname FROM S WHERE EXISTS(SELECT * FROM SPJ WHERE S. Sno=SPJ. Sno AND SPJ. Pno= "P3")
C.SELECT Sname FROM S WHERE EXISTS(SELECT * FROM SPJ WHERE S. Sno = SPJ. Sno AND SPJ. Pno = "P3")
D.SELECT Sname FROM S, SPJ WHERE S. Sno = SPJ. Sno AND SPJ. Pno = "P3" GROUP BY Sname请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
解析:(25)题中C选项没有使用关键字DISTINCT,因而是不正确的。(26)题中A项对S进行了投影操作,无法完成自然连接;C、D项是等价的关系代数表达式,它们在供应商同时供应“P3”零件和其他零件的情况下,无法得到正确的结果。

考点:供应商,模式