单选题 现在有两个关系模式:供应商S(Sno,Sname,Status,City)和供应情况SPJ(Sno,Pno,Jno, Qty)。对于查询“查询零件号Pno等于‘P3’的供应商名Sname”SQL语句 (221) 是错误的,而关系代数表达式 (222) 是正确的。

单选题 A.SELECTSname
FROM S
WHERE EXIST5
(SELECT *
FROM SPJ
WHERE S.Sno=SPJ.Sno
AND SPJ.Pno='P3')
B.SELECT Sname
FROM S,SPJ
WHERE S.Sno=SPJ.Sno
AND SPJ.Pno='P3')
CROUP BY Sname
C.SELECT DISTINCT Sname
FROM S
WHERE EXISTS
(SELECT *
FROM SPJ
WHERE S.Sno=SPJ.Sno
AND SPJ.Pno='P3')
D.SELECT DISTINCT Sname
FROM S
WHERERE 0<
(SELECTCOUNT(,)
FROM SPJ
WHERE S.Sno=SPJ.Sno
AND SPJ.Pnn='P3')
【正确答案】 A
【答案解析】
单选题 A.Πsname(S)-Πsname(σPno≠'P3'(S∞(SPJ)
B.Πsname(S)—nsname((S∞σPno≠'P3'(SPJ)
C.Πsname(S)D∞σPno='P3'(SPJ)
D.Πsname(SD∞σPno='P3'(SPJ))
【正确答案】 D
【答案解析】[解析] 选项A未使用关键字DISTINCT,因而结果中会有重复元组。(18)题中,A和B项关系代数表达式等价,但它们在供应商同时供应“P3”零件和其他零件的情况下,不能得到正确的结果;C项错误,它无法完成自然连接。