习题六参考答案(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 仓库 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
订购单 WHERE 职工号 IN;
(SELE 职工号 FROM 职工,仓库;
WHERE 仓库.城市="上海";
AND 仓库.仓库号=职工.仓库号)
(4) UPDATE 仓库 SET 面积=面积+100 WHERE 城市="北京"
(5) UPDATE 职工 SET 工资=工资*1.1 WHERE 工资<(SELE AVG(工资) FROM 职工)
注:(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 仓库 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
订购单 WHERE 职工号 IN;
(SELE 职工号 FROM 职工,仓库;
WHERE 仓库.城市="上海";
AND 仓库.仓库号=职工.仓库号)
(4) UPDATE 仓库 SET 面积=面积+100 WHERE 城市="北京"
(5) UPDATE 职工 SET 工资=工资*1.1 WHERE 工资<(SELE AVG(工资) FROM 职工)