spj题
S(SNO,SNAME,SCITY) ,P(PNO,PNAME,COLOR,WEIGHT) ,J(JNO,JNAME,JCITY),
其中S表示供应商,它的各属性依次为供应商号,供应商名,供应商所在城市;P表示零件,它的各属性依次为零件号,零件名,零件颜色,零件重量;J表示工程,它的各属性依次为工程号,工程名,工程所在城市;SPJ表示供货关系,它的各属性依次为供应商号,零件号,工程号,供货数量。
请用SQL语句分别表示下面五个查询要求:(20分)。
(1)找出北京的任何工程都不购买的零件的零件号。
(2)按工程号递增的顺序列出每个工程购买的零件总量。
(3)求没有使用天津供应商供应的“红”零件的工程号JNO;
(4)求使用P1零件总数超过1000的工程号JNO;
(5)S表中插入一条新的记录(’S0006’,’华业建设公司’,’杭州’)
SPJ(SNO,PNO,JNO,QTY)
1
select PNO
from P
where PNO not in (select SPJ.PNO from SPJ, J where J.JCITY='北京' and J.JNO=SPJ.JNO)
2
select JNO, sum(QTY)
from SPJ
group by JNO
order by JNO asc
3
select JNO
from SPJ
where not exist(select * from S, P where S.SNO= SPJ.SNO and P.PNO=SPJ.PNO and S.SCITY='天津' and P.COLOR='红')
4
假设P1是 零件名
select SPJ.JNO
from SPJ,P
where SPJ.PNO=P.PNO and P.PNAME='P1'
group by SPJ.JNO
haveing sum(SPJ.QTY)>1000
5
insert into S values('S0006','华业建设公司','杭州')