数据库系统原理及应用教程第四版课后答案(苗雪兰 刘瑞新) 机械工业出版社第6章.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FROM 社会团体, 职工 WHERE 社会团体.负责人=职工.职工号
GO CREATE VIEW 参加人情况(职工号, 姓名, 社团编号, 社团名称, 参加日期) AS SELECT参加.职工号, 姓名, 社会团体.编号, 名称, 参加日期
FROM 职工, 社会团体, 参加 WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号
Go CREATE TABLE 参加(职工号 CHAR(8), 编号 CHAR(8), 参加日期 DATE, CONSTRAINT C3 PRIMARY KEY(职工号, 编号), CONSTRAIN C3 FOREIGN KEY(职工号) REFERENCES 职工(职工号))
Go ②SELECT 职工号, 姓名 FROM 职工, 社会团体, 参加 WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号 AND社会团体.名称 IN ('唱歌队', '篮球队') ③SELECT * FROM 职工 WHERE NOT EXISTS ( SELECT * FROM 参加 WHERE 参加.职工号=职工.职工号) ④ SELECT * FROM 职工 WHERE NOT EXISTS (SELECT * FROM 参加 WHERE NOT EXISTS (SELECT * FROM 社会团体 WHERE 参加.职工号=职工.职工号 AND 参加.编号=社会团体.编号))
FROM 供应零件 WHERE供应商代码='S2';
DELETE FROM 供应商 WHERE供应商代码='S2'
Baidu Nhomakorabea
6.3答: ① SELECT S.S# FROM S
WHERE NOT EXISTS (SELECT * FROM C WHERE C.TEACHER='程军' AND NOT EXISTS (SELECT * FROM
SELECT 社会团体.名称,COUNT(*) FROM 社会团体,参加 A WHERE社会团体.编号=A.编号 GROUP BY A.编号 HAVING COUNT(*) >= ALL(SELECT COUNT(*) FROM 参加 B GROUP BY B.编号) ⑧ SELECT 社会团体.名称,职工.姓名 FROM 职工, 社会团体, 参加 WHERE 社会团体.编号=参加.编号 AND 社会团体.负责人=职工.职工号 GROUP BY 参加.编号 HAVING COUNT(参加.编号)>100; ⑨ CREATE VIEW社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) AS SELECT 编号, 名称, 负责人, 姓名, 性别
6.1答: ① CREATE TABLE 职工(职工号 CHAR(10) NOT NULL UNIQUE, 姓名 CHAR(8) NOT NULL, 年龄 SMALLINT, 性别 CHAR(2), CONSTRAINT C1 CHECK(性别 IN ('男','女')))
Go CREATE TABLE 社会团体(编号 CHAR(8) NOT NULL UNIQUE, 名称 CHAR(12) NOT NULL, 负责人 CHAR(8), 活动地点 VARCHAR(50), CONSTRAINT C2 FOREIGN KEY(负责人) REFERENCES职工(职工号))
SC
WHERE SC.C# =C.C# AND SC.S# =S.S# )) ② SELECT SN FROM S, SC, C
WHERE S.S# =SC.S# AND SC.C# =C.C# AND GRADE>=90 AND CN='程序设计' ③ SELECT SN, AGE, SEX FROM S S1
6.2答: ① SELECT 姓名,联系电话 FROM 供应商 WHERE 所在城市='天津 ② SELECT * FROM 工程 WHERE 预算 BETWEEN 50000 AND 100000 ORDER BY 预算 DESC ③ SELECT 工程代号 FROM 供应零件 WHERE 供应商代码='S1 ④ SELECT 零件.零件名, 供应零件.数量 FROM 零件,供应零件 WHERE 零件.零件代码=供应零件.零件代码 AND 供应零件.工程代码=
'J2' ⑤ SELECT 零件代号 FROM 供应商, 供应零件 WHERE供应商.供应商代码=供应零件.供应商代码 AND 供应商.所在城 市='上海'
⑥ SELECT 工程名 FROM 供应商, 供应零件, 工程 WHERE 供应商.供应商代码=供应零件.供应商代码 AND 供应零件.工程代码=工程.工程代码 AND 供应商.所在城市='上海' ⑦ SELECT 工程号码 FROM 工程 WHERE NOT EXISTS ( SELECT * FORM 供应零件
⑤ SELECT 职工号 FROM 职工 WHERE NOT EXISTS (SELECT * FROM 参加 参加1 WHERE 参加1.职工号= '1001' AND NOT EXISTS (SELECT * FROM 参加 参加2 WHERE 参加2.编号=参加1.编号 AND 参加2.职工号=职工.职工号)) ⑥ SELECT编号,COUNT(职工号) FROM 参加 GROUP BY 编号 ⑦ SELECT 社会团体.名称,COUNT(*) FROM 社会团体,参加 A WHERE社会团体.编号=A.编号 GROUP BY A.编号 HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM 参加 B GROUP BY B.编号) 或:
WHERE工程.工程代码=供应零件.工程代码 AND 供应商代码 IN ( SELECT供应商代码
FROM 供应商 WHERE所在城市='天津')) ⑧ UPDATE 零件 SET 颜色='蓝色' WHERE颜色='红色' ⑨ UPDATE 供应零件 SET 供应商代码='S3' WHERE供应商代码= 'S5' AND 工程代码= 'J4' AND 零件代码= 'P6' ⑩ DELETE
GO CREATE VIEW 参加人情况(职工号, 姓名, 社团编号, 社团名称, 参加日期) AS SELECT参加.职工号, 姓名, 社会团体.编号, 名称, 参加日期
FROM 职工, 社会团体, 参加 WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号
Go CREATE TABLE 参加(职工号 CHAR(8), 编号 CHAR(8), 参加日期 DATE, CONSTRAINT C3 PRIMARY KEY(职工号, 编号), CONSTRAIN C3 FOREIGN KEY(职工号) REFERENCES 职工(职工号))
Go ②SELECT 职工号, 姓名 FROM 职工, 社会团体, 参加 WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号 AND社会团体.名称 IN ('唱歌队', '篮球队') ③SELECT * FROM 职工 WHERE NOT EXISTS ( SELECT * FROM 参加 WHERE 参加.职工号=职工.职工号) ④ SELECT * FROM 职工 WHERE NOT EXISTS (SELECT * FROM 参加 WHERE NOT EXISTS (SELECT * FROM 社会团体 WHERE 参加.职工号=职工.职工号 AND 参加.编号=社会团体.编号))
FROM 供应零件 WHERE供应商代码='S2';
DELETE FROM 供应商 WHERE供应商代码='S2'
Baidu Nhomakorabea
6.3答: ① SELECT S.S# FROM S
WHERE NOT EXISTS (SELECT * FROM C WHERE C.TEACHER='程军' AND NOT EXISTS (SELECT * FROM
SELECT 社会团体.名称,COUNT(*) FROM 社会团体,参加 A WHERE社会团体.编号=A.编号 GROUP BY A.编号 HAVING COUNT(*) >= ALL(SELECT COUNT(*) FROM 参加 B GROUP BY B.编号) ⑧ SELECT 社会团体.名称,职工.姓名 FROM 职工, 社会团体, 参加 WHERE 社会团体.编号=参加.编号 AND 社会团体.负责人=职工.职工号 GROUP BY 参加.编号 HAVING COUNT(参加.编号)>100; ⑨ CREATE VIEW社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) AS SELECT 编号, 名称, 负责人, 姓名, 性别
6.1答: ① CREATE TABLE 职工(职工号 CHAR(10) NOT NULL UNIQUE, 姓名 CHAR(8) NOT NULL, 年龄 SMALLINT, 性别 CHAR(2), CONSTRAINT C1 CHECK(性别 IN ('男','女')))
Go CREATE TABLE 社会团体(编号 CHAR(8) NOT NULL UNIQUE, 名称 CHAR(12) NOT NULL, 负责人 CHAR(8), 活动地点 VARCHAR(50), CONSTRAINT C2 FOREIGN KEY(负责人) REFERENCES职工(职工号))
SC
WHERE SC.C# =C.C# AND SC.S# =S.S# )) ② SELECT SN FROM S, SC, C
WHERE S.S# =SC.S# AND SC.C# =C.C# AND GRADE>=90 AND CN='程序设计' ③ SELECT SN, AGE, SEX FROM S S1
6.2答: ① SELECT 姓名,联系电话 FROM 供应商 WHERE 所在城市='天津 ② SELECT * FROM 工程 WHERE 预算 BETWEEN 50000 AND 100000 ORDER BY 预算 DESC ③ SELECT 工程代号 FROM 供应零件 WHERE 供应商代码='S1 ④ SELECT 零件.零件名, 供应零件.数量 FROM 零件,供应零件 WHERE 零件.零件代码=供应零件.零件代码 AND 供应零件.工程代码=
'J2' ⑤ SELECT 零件代号 FROM 供应商, 供应零件 WHERE供应商.供应商代码=供应零件.供应商代码 AND 供应商.所在城 市='上海'
⑥ SELECT 工程名 FROM 供应商, 供应零件, 工程 WHERE 供应商.供应商代码=供应零件.供应商代码 AND 供应零件.工程代码=工程.工程代码 AND 供应商.所在城市='上海' ⑦ SELECT 工程号码 FROM 工程 WHERE NOT EXISTS ( SELECT * FORM 供应零件
⑤ SELECT 职工号 FROM 职工 WHERE NOT EXISTS (SELECT * FROM 参加 参加1 WHERE 参加1.职工号= '1001' AND NOT EXISTS (SELECT * FROM 参加 参加2 WHERE 参加2.编号=参加1.编号 AND 参加2.职工号=职工.职工号)) ⑥ SELECT编号,COUNT(职工号) FROM 参加 GROUP BY 编号 ⑦ SELECT 社会团体.名称,COUNT(*) FROM 社会团体,参加 A WHERE社会团体.编号=A.编号 GROUP BY A.编号 HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM 参加 B GROUP BY B.编号) 或:
WHERE工程.工程代码=供应零件.工程代码 AND 供应商代码 IN ( SELECT供应商代码
FROM 供应商 WHERE所在城市='天津')) ⑧ UPDATE 零件 SET 颜色='蓝色' WHERE颜色='红色' ⑨ UPDATE 供应零件 SET 供应商代码='S3' WHERE供应商代码= 'S5' AND 工程代码= 'J4' AND 零件代码= 'P6' ⑩ DELETE