资源描述:
《数据库系统考试复习用 编程设计题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商号码SNO:πSno(σSno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)-πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)5)
2、求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))3.用sQL语句建立第二章习题5中的4个表。答:对于S表:S(SNO,SNAME,STATUS,CITY);建S表:CREATETABLES(SnoC(2)UNIQUE,SnameC(6),StatusC(2),CityC(4));对于P表:P(PNO,PNAME,COLOR,WEIGHT);建P表:CREATETABLEP(PnoC(2)UNIQUE,PnameC(6),COLORC(
3、2),WEIGHTINT);对于J表:J(JNO,JNAME,CITY);建J表:CREATETABLEJ(JnoC(2)UNlQUE,JNAMEC(8),CITYC(4))对于sPJ表:sPJ(sNo,PNo,JNo,QTY);建SPJ表:SPJ(SNO,PNO,JNO,QTY)CREATETABLESPJ(SnoC(2),PnoC(2),JNOC(2),QTYINT))4.针对上题中建立的4个表试用sQL语言完成第二章习题5中的查询。(l)求供应工程Jl零件的供应商号码SNO;SELECTDISTSN
4、OFROMSPJWHEREJNO=’J1’(2)求供应工程Jl零件Pl的供应商号码SNO;SELECTDISTSNOFROMSPJWHEREJNO='J1'ANDPNO='P1'(3)求供应工程Jl零件为红色的供应商号码SNO;SELECTSNOFROMSPJ,PWHEREJNO='J1'ANDSPJ.PNO=P.PNOANDCOLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO;SELECTDISTJNOFROMSPJWHEREJNONOTIN(SELEJNOFROMSPJ,P,SWH
5、ERES.CITY='天津'ANDCOLOR='红'ANDS.SNO=SPJ.SNOANDP.PNO=SPJ.PNO)。(5)求至少用了供应商Sl所供应的全部零件的工程号JNO;由于VFP不允许子查询嵌套太深,将查询分为两步A、查询S1供应商供应的零件号SELECTDISTPNOFROMSPJWHERESNO='S1'结果是(P1,P2)B、查询哪一个工程既使用P1零件又使用P2零件。SELECTJNOFROMSPJWHEREPNO='P1'ANDJNOIN(SELECTJNOFROMSPJWHEREPN
6、O='P2')5.针对习题3中的四个表试用SQL语言完成以下各项操作:1)找出所有供应商的姓名和所在城市。SELECTSNAME,CITYFROMS2)找出所有零件的名称、颜色、重量。SELECTPNAME,COLOR,WEIGHTFROMP3)找出使用供应商S1所供应零件的工程号码。SELECTDISTJNOFROMSPJWHERESNO='S1'4)找出工程项目J2使用的各种零件的名称及其数量。SELECTPNAME,QTYFROMSPJ,PWHEREP.PNO=SPJ.PNOANDSPJ.JNO='
7、J2'5)找出上海厂商供应的所有零件号码。SELECTPNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDCITY='上海'6)出使用上海产的零件的工程名称。SELECTJNAMEFROMSPJ,S,JWHERES.SNO=SPJ.SNOANDS.CITY='上海'ANDJ.JNO=SPJ.JNO(7)找出没有使用天津产的零件的工程号码。注意:SELECTDISPJNOFROMSPJWHEREJNONOTIN(SELECTDISTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOA
8、NDS.CITY='天津')适用于JNO是唯一或不唯一的情况.注意:SELECTDISTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY<>'天津'适用于JNO是唯一的情况(8)把全部红色零件的颜色改成蓝色。UPDATEPSETCOLOR='蓝'WHERECOLOR='红'(9)由S5供给J4的零件P6改为由S3供应。UPDATESPJSETSNO='S3'WHERESNO='S5'ANDJNO=