问题 单项选择题

设有一个数据库,包括S、P、J、SJP四个关系模式如下: 供应商关系模式S(SNO, SNAME, CITY) 零件关系模式P(PNO, PNAME, COLOR, WEIGHT) 工程项目关系模式J(JNO, JNAME, CITY) 供应情况关系模式SJP(SNO, PNO, JNO, QTY) 假定它们都已经有若干数据。则“找出北京供应商供应的所有零件信息”的SELECT语句是( )。

A.SELECT * FROM S WHERE CITY='北京'

B.SELECT SNO, SNAME FROM S WHERE CITY='北京'

C.SELECT P.* FROM S,P WHERE S.CITY='北京' AND S.SNO=SJP.SNO AND SJP.PNO=P.PNO

D.SELECT P.* FROM P,S,SJP WHERE S.CITY='北京' AND S.SNO=SJP.SNO AND SJP.PNO=PPNO

答案

参考答案:D

解析: 由于要找出零件信息,因此必然要用到表P,又因为是从北京供应商里查找,因此要用到表S,再加上两者之间的关系SJP,故SELECT后的FROM子句应为FROM P,S,SJP。“北京供应商”的表达式是S.CITY='北京',还要满足在三个表中的SNO和PNO属性对应相等,故WHERE语句为WHERE S.CITY='北京' AND S.SNO=SJP.SNO AND SJP.PNC=P.PNO。由此本题应该选D)。

补全对话,情景问答
选择题