问答题 对于工程数据库的四个基本表:
厂家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实现。