习题六参考答案(P114) 注:(1)若一道题目中使用了不同字体颜色,表示该题目的不同的实现方法。 (2)若一道题目中使用的是相同的字体颜色,而包含多条语句,表示实现该题目经过多个步骤 (3)注意分号“;"。 2.用SQL语句完成下列操作。 (1)SELE供应商名FROM供应商 WHERE地址="北京” (2)SELE订购单号FROM订购单WERE供应商号="S6″ (3)SELE*FROM订购单WERE职工号="E6”AND供应商号="S6″ (4)SELE职工号,仓库号FROM职工 WHERE职工号IN(SELE职工号FROM订购单 WHERE供应商号="S3") SELE职工号,仓库号FROM职工 WHERE职工号=ANY(SELE职工号FROM订购单 WHERE供应商号="S3") SELE职工号,仓库号FROM职工 WHERE职工号=SOM(SELE职工号FROM订购单WERE供应商号="S3") SELE职工.职工号,仓库号FROM职工,订购单 WHERE供应商号=”S3″AND职工,职工号=订购单.职工号 (5)SELE*FROM供应商 WHERE地址=”北京”; AND供应商号IN(SELE供应商号FROM订购单 WHERE职工号="E1”) AND供应商号IN(SELE供应商号FROM订购单WERE职工号="E3") SELE C.供应商号,供应商名FROM订购单A,订购单B,供应商C; WHERE地址=”北京 ANDA.职工号="E1"ANDB.职工号="E3"; ANDA.供应商号=C.供应商号ANDB.供应商号=C.供应商号 (6)SELE职工号FROM职工 WHERE工资<1220 INTO CURSOR TEMP SELE供应商名FROM供应商 WHERE供应商号 NOT IN (SELE供应商号FROM订购单 WHERE职工号=TEMP.职工号 (7)SELE城市FROM仓库,职工,订购单 WHERE供应商号="S4
习题六参考答案(P114) 注:(1)若一道题目中使用了不同字体颜色,表示该题目的不同的实现方法。 (2)若一道题目中使用的是相同的字体颜色,而包含多条语句,表示实现该题目经过多个步骤。 (3)注意分号“;”。 2.用 SQL 语句完成下列操作。 (1)SELE 供应商名 FROM 供应商 WHERE 地址="北京" (2)SELE 订购单号 FROM 订购单 WHERE 供应商号="S6" (3)SELE * FROM 订购单 WHERE 职工号="E6" AND 供应商号="S6" (4)SELE 职工号,仓库号 FROM 职工; WHERE 职工号 IN (SELE 职工号 FROM 订购单 WHERE 供应商号="S3") SELE 职工号,仓库号 FROM 职工; WHERE 职工号 =ANY(SELE 职工号 FROM 订购单 WHERE 供应商号="S3") SELE 职工号,仓库号 FROM 职工; WHERE 职工号 =SOME(SELE 职工号 FROM 订购单 WHERE 供应商号="S3") SELE 职工.职工号,仓库号 FROM 职工,订购单; WHERE 供应商号="S3" AND 职工.职工号=订购单.职工号 (5)SELE * FROM 供应商 WHERE 地址="北京"; AND 供应商号 IN (SELE 供应商号 FROM 订购单 WHERE 职工号="E1" ); AND 供应商号 IN (SELE 供应商号 FROM 订购单 WHERE 职工号="E3" ) SELE C.供应商号,供应商名 FROM 订购单 A,订购单 B,供应商 C; WHERE 地址="北京"; AND A.职工号="E1" AND B.职工号="E3"; AND A.供应商号=C.供应商号 AND B.供应商号=C.供应商号 (6)SELE 职工号 FROM 职工 WHERE 工资<1220 INTO CURSOR TEMP SELE 供应商名 FROM 供应商; WHERE 供应商号 NOT IN (SELE 供应商号 FROM 订购单 WHERE 职工号=TEMP.职工号) (7)SELE 城市 FROM 仓库,职工,订购单; WHERE 供应商号="S4";
AND订购单.职工号=职工.职工号 AND仓库.仓库号=职工仓库号 (8)SELE职工职工号FROM职工,仓库,订购单; WHERE订购单.供应商号="S6″ AND订购单.职工号=职工.职工号; AND职工.仓库号=仓库.仓库号; AND仓库.城市="上海 (9)SELE订购单号FROM订购单; WHERE职工号IN(SELE职工号FROM职工 WHERE工资》1230); AND供应商号IN(SELE供应商号FROM供应商 WHERE地址=”北京") SELE订购单号FROM订购单,职工,供应商 WHERE工资>1230 AND地址=”北京 AND订购单职工号=职工,职工号 AND订购单.供应商号=供应商供应商号 (10) SELE COUNT(*)AS仓库个数FROM仓库 (11)SELE*FROM仓库WERE面积>=AL(SELE面积FROM仓库) (12) SELE AVG(面积)AS仓库平均面积FROM仓库 (13)SELE仓库号, COUNT(*)FROM职工 GROUP BY仓库号 WHERE工资>1220 (14) SELE COUNT(DIST供应商号)FROM订购单,职工,仓库; WHERE面积<=AL(SELE面积FROM仓库) AND仓库.仓库号=职工.仓库号 AND职工职工号=订购单.职工号 AND订购单.供应商号 IS NOT NULL (15)SELE仓库号,AVG(工资)AS平均工资FROM职工 GROUP BY仓库号 INTO CURSOR TEMP SELE*FROM职工, TEMP WHERE工资<TEMP.平均工资AND职工.仓库号=TEMP.仓库号 3.用SQL语句完成下列操作。 (1) INSERT INTO供应商 VALUES("S9”,"智通公司","沈阳" (2) DELE FROM供应商 WHERE供应商号 NOT IN(SELE供应商号FROM订购单)
AND 订购单.职工号=职工.职工号; AND 仓库.仓库号=职工.仓库号 (8)SELE 职工.职工号 FROM 职工,仓库,订购单; WHERE 订购单.供应商号="S6"; AND 订购单.职工号=职工.职工号; AND 职工.仓库号=仓库.仓库号; AND 仓库.城市="上海" (9)SELE 订购单号 FROM 订购单; WHERE 职工号 IN (SELE 职工号 FROM 职工 WHERE 工资>1230); AND 供应商号 IN (SELE 供应商号 FROM 供应商 WHERE 地址="北京") SELE 订购单号 FROM 订购单,职工,供应商; WHERE 工资>1230; AND 地址="北京"; AND 订购单.职工号=职工.职工号; AND 订购单.供应商号=供应商.供应商号 (10) SELE COUNT(*) AS 仓库个数 FROM 仓库 (11) SELE * FROM 仓库 WHERE 面积>=ALL(SELE 面积 FROM 仓库) (12) SELE AVG(面积) AS 仓库平均面积 FROM 仓库 (13) SELE 仓库号,COUNT(*) FROM 职工 GROUP BY 仓库号 WHERE 工资>1220 (14) SELE COUNT(DIST 供应商号) FROM 订购单,职工,仓库; WHERE 面积<=ALL(SELE 面积 FROM 仓库); AND 仓库.仓库号=职工.仓库号; AND 职工.职工号=订购单.职工号; AND 订购单.供应商号 IS NOT NULL (15) SELE 仓库号,AVG(工资) AS 平均工资 FROM 职工 GROUP BY 仓库号 INTO CURSOR TEMP SELE * FROM 职工,TEMP WHERE 工资<TEMP.平均工资 AND 职工.仓库号=TEMP.仓库号 3.用 SQL 语句完成下列操作。 (1) INSERT INTO 供应商 VALUES("S9","智通公司","沈阳") (2) DELE FROM 供应商 WHERE 供应商号 NOT IN(SELE 供应商号 FROM 订购单)
(3) DELE FROM 订购单WERE职工号IN (SELE职工号FROM职工,仓库; WRE仓库.城市=”上海 AND仓库.仓库号=职工.仓库号) (4) UPDATE仓库SET面积=面积+100 WHERE城市=”北京 (5) UPDATE职工SET工资=工资*1.1 WHERE工资<( SELE AVG(工资)FROM职工
(3) DELE FROM 订购单 WHERE 职工号 IN; (SELE 职工号 FROM 职工,仓库; WHERE 仓库.城市="上海"; AND 仓库.仓库号=职工.仓库号) (4) UPDATE 仓库 SET 面积=面积+100 WHERE 城市="北京" (5) UPDATE 职工 SET 工资=工资*1.1 WHERE 工资<(SELE AVG(工资) FROM 职工)