数据库习题答案PPT推荐.ppt
《数据库习题答案PPT推荐.ppt》由会员分享,可在线阅读,更多相关《数据库习题答案PPT推荐.ppt(13页珍藏版)》请在冰豆网上搜索。
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成;
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项J所在城,(CITY)组成:
供应情况表SPJ供应南代码(SNO)、零件代码(PNO)、工程顶目代码(JNO),供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
1、用SQL语句建立这四个表。
CREATETABLES(snoCHAR(4)NOTNULLUNIQUE,snameCHAR(20),statusINT,cityCHAR(10);
CREATETABLEp(pnoCHAR(4)NOTNULLUNIQUE,pnameCHAR(20),colorCHAR(4),weightINT);
CREATETABLEj(jnoCHAR(4)NOTNULLUNIQUE,jnameCHAR(20),cityCHAR(20);
CREATETABLEspj(snoCHAR(4)NOTNULL,pnoCHAR(4)NOTNULL,jnoCHAR(4)NOTNULL,qtyINT);
CREATECLUSTERINDEXSPJ_INDEXONSPJ(sno,pno,jno);
2、针对以上四个表用SQL语句完成以下操作找出所有供应商的姓名和所在城市。
SELECTsNAME,cityFROMs;
找出所有零件的名称、颜色、重量。
SELECTpname,color,weightFROMp;
找出使用供应商S1所供应零件的工程号码。
SELETEDISTINCTjnoFROMspjWHEREsno=S1;
找出工程项目J2使用的各种零件的名称及其数量qtySELECTp.pname,Sum(qty)TotqtyFROMp,spjWHEREp.pno=spj.pnoANDspj.jno=J2GroupBYPNAME;
找出上海厂商供应的所有零件号码。
SELECTpnoFROMspjWHEREsnoIN(SELECTsnoFROMsWHEREcity=上海);
找出使用上海产的零件的工程名称。
SELECTDISTINCT(jname)FROMjWHEREjnoIN(SELECTjnoFROMspjWHEREsnoIN(SELECTsnoFROMsWHEREcity=”上海”);
找出没有使用天津产的零件的工程号码。
把全部红色零件的颜色改成蓝色。
UPDATEpSETcolor=蓝WHEREcolor=红;
由S5供给J4的零件P6改为由S1供应,请做必要的修改UPDATEspjSETsno=”S1”WHEREsno=”S5”ANDjno=”J4”ANDpno=”P6”;
从供应商关系中删除s2的记录,并从供应情况关系中删除相应的记录。
DELETEFROMsWHEREsno=”S2”;
DELETEFROMspjWHEREsno=”s2”;
请将(S2,J6,P4,200)插入供应情况关系。
INSERTINTOspjVALUES(“S2”,”J6”,”P4”,200);
统计各个供应商供应的零件总数。
SELECTSUM(qty)FROMspjGROUPBYsno;
查询总供应量在600以上的供应商的姓名、供应商编号、总供应数量。
SELECTs.sname,spj.sno,SUM(spj.qty)FROMspj,sWHEREs.sno=spj.snoGROUPBYsnoHAVINGSUM(spj.qty)600;
3、请为三建工程项目建立一个供应情况的视图,包括供应两代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图完成下列查询:
CREATEVIEWVSPASSELECTSNO,PNO,QTYFROMSPJ,JWHERESPJ.JNO=J.JNOANDJ.JNAME=三建;
找出三建工程项目使用的各种零件代码及其数量SELECTDISTPNO,QTYFROMVSP;
找出供应商S1的供应情况。
SELECTDIST*FROMVSPWHERESNO=S1;
4、针以上表,用SQL语言完成以下各项操作:
把对表S的INSERT权限授予用户张勇,并允许他再将此权限授予其他用户。
GRANTINSERTONTABLEsTO张勇WITHGRANTOPTION;
把查询SPJ表和修改QTY属性的权限授予用户李天明。
GRANTUPDATE(qty),SELECTONTABLEspjTO李天明;