阅读下列说明,回答问题1和问题2,将解答写在答卷的对应栏内。 【说明】 供应商—零件—工程项目数据库由以下4个关系模式构成: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT,CI

admin2010-01-15  28

问题 阅读下列说明,回答问题1和问题2,将解答写在答卷的对应栏内。
    【说明】
   供应商—零件—工程项目数据库由以下4个关系模式构成:
   S(SNO,SNAME,STATUS,CITY)
   P(PNO,PNAME,COLOR,WEIGHT,CITY)
   J(JNO,TNAME,CITY)
   SPJ(SNO,PNO,JNO,QTY)
   其中,供应商S,零件P和工程项目J分别由供应商号(SNO),零件号(PNO)和工程项目号(JNO)唯一标识。供货SPJ是指由某个供应商向某个工程项目供应某些数量的某种零件。
   【问题1】
   请用SQL语言完成如下的操作。
   ①找出给北京的工程项目提供不同的零件号:
   ②将没有供货的所有工程项目从J中删除;
   ③查询这样的工程项目号:供给该工程项目的零件P1的平均供应量大于供给工程项目n的任何一种零件的最大供应量。
   【问题2】
   定义一个视图,它由所有这样的工程项目(工程项目号与所在城市名称)组成:它们由供应商S1供货且使用零件P1。

选项

答案[问题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

解析 “找出给北京的工程项目提供不同的零件号”需要两个表(工程项目J和供货SPJ)的联合查找,要使用DISTINCT来消除重复项。
   “将没有供货的所有工程项目从J中删除”,首先要在于查向内从供货(SPJ)表内将所有供货的工程项目号(JNO)查山,然后使用NOTIN在工程项目表(J)内将不含有这些 JNO的记录删除。
   问题1中②这个查询需要使用条件语句having,还需要使用数学函数AVG、MAX。
   考生还要熟悉视图、索引的语句,请参考有关教材,这里不做说明。
转载请注明原文地址:https://kaotiyun.com/show/r0DZ777K
0

随机试题
最新回复(0)