请先运行如下代码,然后再进行查询:
insert into spj values('s1','p3','j5',300);
insert into spj values('s1','p3','j6',400);
insert into spj values('s1','p3','j7',500);
insert into spj values('s1','p3','j8',600);
insert into spj values('s1','p3','j9',700);
-. 分别用SQL和关系代数完成下列查询
1. 查询为所有工程供应过零件的供应商的供应商号,供应商名称及供应商所在地
2. 查询供应过所有红色零件的供应商的供应商名及其所在地
3. 查询既供应了零件p1,也供应了零件p2 的供应商号
二.用SQL完成下列查询
4. 查询零件供应量超过此零件平均供应量的供应信息,显示
出供应商名,零件名,工程号,以及相应的供应量。
5. 查询供应总量最大的供应商的供应商号及其总的供应量 (GROUP BY)
6. 查询单笔供应量比所有上海供应商的单笔供应量都多的天津供应商的供应信息,显示供应商号,供应商名及其所在城市,所供应的零件号,项目号,以及相应的供应量
7. 为造船厂项目建立一个供应情况的视图spj_w,视图包括供应商代码,零件代码,项目名称,供应数量
8. 基于11题的视图,完成如下查询:
A 查询造船厂项目所使用的零件代码及其总数量
B 找出造船厂项目中,S1供应的红色零件的零件号(GROUP BY)
insert into spj values('s1','p3','j5',300);
insert into spj values('s1','p3','j6',400);
insert into spj values('s1','p3','j7',500);
insert into spj values('s1','p3','j8',600);
insert into spj values('s1','p3','j9',700);
SELECT S.SNO,S.SNAME,S.CITY
FROM spj,s
WHERE jno='J1'AND jno='J2'AND jno='J3'AND jno='J4'AND jno='J5'AND jno='J6'AND jno='J7'
SELECT SNAME,CITY
FROM spj,s,p
WHERE s.sno=spj.sno AND p.pno=spj.pno AND COLOR='红'
SELECT S.SNO
FROM s,spj
WHERE pno='P1'AND pno='P2' AND s.sno=spj.sno
SELECT sname,PNAME,JNO,QTY
FROM s,spj,p
WHERE s.sno=spj.sno AND p.pno=spj.pno AND QTY>All(SELECT AVG(DISTINCT QTY)
FROM spj
select top 1 sno,SUM(qty) as qty
from spj
group by sno
order by sum(qty) desc
select s.sno,sname,city,pno,jno,qty
from s,spj
where city='天津' and s.sno=spj.sno and qty>=all(
select qty
from spj
where city='上海'
)
create view spj_w(sno,pno,jname,qty)
as
select spj.sno,spj.pno,j.jname,spj.qty
from spj,j
where spj.jno=j.jno and j.jno='j4'
select pno,sum(qty)
from spj_w
group by pno
select spj_w.pno
from spj_w,p
where spj_w.pno=p.pno and p.color='红' and sno='s1'