SQL实验二
实验内容
题目一:
(1)找出所有供应商的姓名和所在城市
(2)找出所有零件的名称,颜色,重量
(3)找出使用供应商S1所供应零件的工程号码
(4)找出工程项目J2使用的各种零件的
名称及其数量
(5)找出上海厂商供应的所有零件号码
(6)找出使用上海产的零件的工程名称
(7)找出没有使用天津产的零件的工程号码
————————————————
select SNAME,CITY
from S;
select PNAME,COLOR,WEIGHT
from P;
select JNO
from SPJ
where SNO='S1';
select PNAME,QTY
from SPJ,P
where SPJ.JNO='J2' AND
SPJ.PNO=P.PNO;
select PNO
from SPJ,S
where S.SNO=SPJ.SNO AND
S.CITY='上海';
select distinct J.JNAME
from SPJ,S,J
where SPJ.SNO=S.SNO AND
S.CITY='上海'AND
J.JNO=SPJ.JNO;
select JNO
from SPJ X
where JNO NOT IN(
select JNO from S,SPJ Y
where S.CITY='天津' AND
Y.SNO=S.SNO );
题目二:
(1)查询供应J1零件的SNO
(2)查询供应J1零件P1的供应商号码SNO
(3)供应工程J1零件为红色的供应商号码SNO
(4)没有使用天津供应商生产的红色零件的工
程号JNO
(5)至少用了S1供应的全部零件的工程号JNO
select distinct JNO
from SPJ
where JNO NOT IN(
select JNO from S,SPJ Y
where S.CITY='天津' and
Y.SNO=S.SNO AND X.JNO=Y.JNO);
select SNO
from SPJ
where JNO='J1';
select SNO
from SPJ
where JNO='J1' AND
PNO='P1';
select SNO
from SPJ,P
where JNO='J1' AND
SPJ.PNO = P.PNO AND
COLOR='红';
select distinct JNO
from SPJ
where not exists(
select * from S,P
where SPJ.SNO=S.SNO AND
S.CITY='天津' AND
SPJ.PNO=P.PNO AND
P.COLOR='红');
select distinct JNO
from SPJ X
where not exists(
select * from SPJ Y
where Y.SNO='S1' AND
not exists(
select * from SPJ Z
where Z.SNO=Y.SNO AND
Y.PNO=X.PNO);
题目三:
请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO),零件代码(PNO),供应数量(QTY)。针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量
(2)找出供应商S1的供应情况
create view SPQ(SNO,PNO,QTY)
AS
SELECT SNO,P.PNO,QTY
FROM SPJ,P,J
WHERE SPJ.PNO=P.PNO and SPJ.JNO=J.JNO AND JNAME='三建'
select DISTINCT PNO,QTY
FROM SPQ;
SELECT PNO,QTY
FROM SPQ
WHERE SNO='S1';