【答案解析】[问题1]
①SELECTDISTlNCT SPJ.PNO
FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND J.CITY='北京'
②DELETE
FROM J
WHERE JNO NOT IN (
SELECT JNO
FROM SPJ);
③SELECT DISTINCT JNO
FROM SPJ
WHERE PNO='P1'
GROUP BY JNO
HAVING AVG (QTS)>
(SELECT MAX (QTY)
FROM SPJ
WHERE JNO='J1');
[问题2]
CREATE VIEW J_S1_P1
AS SELECT J.JNO,J.CITY
FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND SPJ.SNO='S1' AND SPJ.PNO='P1'
[解析] “找出给北京的工程项目提供不同的零件号”需要两个表(工程项目J和供货SPJ)的联合查找,要使用DISTINCT来消除重复项。
“将没有供货的所有工程项目从J中删除”,首先要在于查向内从供货(SPJ)表内将所有供货的工程项目号(JNO)查山,然后使用NOTIN在工程项目表(J)内将不含有这些 JNO的记录删除。
问题1中②这个查询需要使用条件语句having,还需要使用数学函数AVG、MAX。
考生还要熟悉视图、索引的语句,请参考有关教材,这里不做说明。