问答题 对于工程数据库的四个基本表:
厂家S(Sno,Sname,Status,City)
产品P(Pno,Pname,Weight,Color)
工程J(Jno,Jname,City)
供货SPJ(Sno,Pno,Jno,QTY)
试用SQL的查询语句表达下列查询:

问答题 ①查找出货量(QTY)在300~500的所有供货情况;
【正确答案】①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='‘红’)))
【答案解析】
问答题 ③查询至少使用了厂家S1所提供的全部零件的工程名。
【正确答案】③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)) ;
【答案解析】[解析] 考查对于复杂关系的代数转换,通过EXISTS或NOT EX- ISTS实现。