问题 问答题

对于工程数据库的4个基本表
厂家 S(Sno,Sname,Status,City)
产品 P(Pno,Pname,Weight,Color)
工程 J(Jno,Jname,City)
供货 SPJ(Sno,Pno,Jno,QTY)
试用SQL的查询语句表达下列查询:
①给出货量(QTY)在300~500的所有供货情况。
②查询使用了由供应红色产品的厂商供应的产品的工程名。
③查询至少使用了厂家S1所提供的全部零件的工程名。

答案

参考答案:①SELECT *
FROM SPJ
WHERE QTY BETWEEN 300 AND 500
②SELECT Jname
FROM J
WHERE Jno IN(SELECT Jno
FROM SPJ
WHERE Sno IN
(SELECT Sno
FROM SPJ
WHERE Pno IN
(SELECT Pno
FROM P
WHERE Color=’红’)))
③SELECT Jname FROM J
WHERE NOT EXISTS(SELECT *
FROM SPJ SPJX
WHERE Sno=’S1’ AND NOT EXISTS
(SELECT *
FROM SPJ SPJY
WHERE SPJX.Pno=SPJY.Pno
AND SPJY.Jno=J.Jno));

问答题 简答题
问答题 简答题