谪仙阁-记录美好瞬间

数据库上机2答案

作者头像
谪仙 本文作者

2025-9-28 阅读 24 约 6分钟读完

评论0

好嘞 ✅ 我帮你把每一道题目写上题干、SQL 语句,并在语句前加上注释,答案紧跟在下面。


🔹 连接查询

1) 求供应工程 J1 零件的供应商号码 SNO

-- 查询供应工程 J1 零件的供应商编号
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO = 'J1';

答案: S1, S2, S3, S5


2) 求使用供应商 S1 所供应零件的工程号码

-- 查询使用供应商 S1 所供应零件的工程编号
SELECT DISTINCT JNO
FROM SPJ
WHERE SNO = 'S1';

答案: J1, J2, J3, J4


3) 找出工程项目 J2 使用的各种零件的号码及其数量

-- 查询工程 J2 使用的零件编号及其数量
SELECT PNO, QTY
FROM SPJ
WHERE JNO = 'J2';

答案:

P2 100

P3 200

P5 100

P6 200


4) 找出天津的工程项目使用的各种零件的号码、数量及其对应的工程号

-- 查询天津的工程项目所使用的零件编号、数量及工程号
SELECT SPJ.JNO, SPJ.PNO, SPJ.QTY
FROM SPJ
JOIN J ON SPJ.JNO = J.JNO
WHERE J.CITY = N'天津';

答案:

J3 P1 100

J3 P6 300

J4 P1 700

J4 P3 500

J4 P6 200

J4 P2 100

J4 P6 500


5) 找出工程项目 J2 使用的各种零件的名称及其数量

-- 查询工程 J2 使用的零件名称及其数量
SELECT P.PNAME, SPJ.QTY
FROM SPJ
JOIN P ON SPJ.PNO = P.PNO
WHERE SPJ.JNO = 'J2';

答案:

螺栓 100

螺丝刀 200

凸轮 100

齿轮 200


6) 找出上海厂商供应的所有零件号码

-- 查询上海供应商供应的零件编号
SELECT DISTINCT SPJ.PNO
FROM SPJ
JOIN S ON SPJ.SNO = S.SNO
WHERE S.CITY = N'上海';

答案: P2, P3, P6


7) 找出使用上海产的零件的工程名称

-- 查询使用上海供应商供应零件的工程名称
SELECT DISTINCT J.JNAME
FROM SPJ
JOIN S ON SPJ.SNO = S.SNO
JOIN J ON SPJ.JNO = J.JNO
WHERE S.CITY = N'上海';

答案: 三建、一汽、造船厂


🔹 嵌套查询

1) 显示与“螺母”颜色相同的产品名

-- 查询与“螺母”颜色相同的零件名称
SELECT PNAME
FROM P
WHERE COLOR = (
SELECT COLOR FROM P WHERE PNAME = N'螺母'
);

答案: 螺母、螺丝刀、齿轮


2) 查出工程 J1 和 J3 同时使用的零件名称

-- 查询工程 J1 和 J3 同时使用的零件名称
-- 查出工程 J1 和 J3 同时使用的零件名称

SELECT DISTINCT P.PNAME

FROM P

WHERE P.PNO IN (SELECT PNO FROM SPJ WHERE JNO = 'J1')

AND P.PNO IN (SELECT PNO FROM SPJ WHERE JNO = 'J3');

答案: 螺母


3) 找出没有使用天津产的零件的工程号码

-- 查询没有使用天津产零件的工程编号
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN (
SELECT DISTINCT SPJ.JNO
FROM SPJ
JOIN S ON SPJ.SNO = S.SNO
WHERE S.CITY = N'天津'
);

答案: J5, J6, J7


4) 找出北京的任何工程都不购买的零件的零件号

-- 查询北京工程没有购买过的零件编号
SELECT PNO
FROM P
WHERE PNO NOT IN (
SELECT DISTINCT SPJ.PNO
FROM SPJ
JOIN J ON SPJ.JNO = J.JNO
WHERE J.CITY = N'北京'
);

答案: P2, P4, P6


5) 求没有使用天津供应商生产的红色零件的工程号 JNO

-- 查询没有使用天津供应商生产的红色零件的工程编号
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN (
SELECT DISTINCT SPJ.JNO
FROM SPJ
JOIN S ON SPJ.SNO = S.SNO
JOIN P ON SPJ.PNO = P.PNO
WHERE S.CITY = N'天津' AND P.COLOR = N'红'
);

答案: J2, J5, J6, J7


要不要我帮你把这些查询再整理成一个 Word/PDF 文档,带表格形式的答案,方便你直接交作业?



手机扫码阅读
上一篇 没有了 下一篇 数据库上机2
评论