1.求供应工程J1零件的供应商代码SNOπSNO(σJNO='J1'(SPJ))2.求供应工程J1零件P1的供应商代码SNOπSNO(σJNO='J1' Λ PNO='P1'(SPJ))3.求供应工程J1红色零件的供应商代码SNOπSNO(πSNO,PNO(σJNO='J1'(SPJ)) ⋈ πPNO(σCOLOR='红'(P)))
4.求没有使用天津供应商生产的红色零件的工程项目代码JNO
πJNO(J) - πJNO(πSNO(σCITY='天津'(S)) ⋈ πSNO,PNO,JNO(SPJ) ⋈ πPNO(σCOLOR='红'(P))5.求至少用了供应商S1所供应的全部零件的工程项目代码JNOπJNO,PNO(SPJ) / πPNO(σSNO='S1'(SPJ))第3章 4
1.求供应工程J1零件的供应商代码SNO
SELECT SNO FROM SPJ
WHERE JNO='J1';
2.求供应工程J1零件P1的供应商代码SNO
SELECT SNOFROM SPJ
WHERE JNO='J1' AND PNO='P1';
3.求供应工程J1红色零件的供应商代码SNO
SELECT SNOFROM SPJ,P
WHERE SPJ.JNO='J1' AND P.COLOR='红' AND SPJ.PNO=P.PNO
4.求没有使用天津供应商生产的红色零件的工程项目代码JNO
SELECT JNOFROM J
WHERE NOT EXISTS
(SELECT 'X'
FROM SPJ, S, P
WHERE S.CITY='天津' AND P.COLOR='红'
AND SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO)或使用集合的差运算
5.求至少用了供应商S1所供应的全部零件的工程项目代码JNO
求工程代码jno,对供应商S1提供的零件,工程全部采用(逻辑蕴含)等价于:不存在这样的零件y,供应商S1提供了,但工程jno没有选用
SELECT JNOFROM SPJ o
WHERE NOT EXISTS
(SELECT 'X' FROM SPJ i
WHERE SNO='S1'
AND NOT EXISTS
(SELECT 'X' FROM SPJ
WHERE SPJ.PNO=i.PNO AND SPJ.JNO=o.JNO));
第3章5
1.找出所有供应商的姓名及其所在城市
SELECT sname, cityFROM s;
2.找出所有零件的名称、颜色、重量
SELECT pname, color, weightFROM p;
3.找出使用供应商S1所供应零件的工程项目代码
SELECT jnoFROM spj
WHERE sno='S1';
4.找出工程项目J2所使用的各种零件的名称及其数量
SELECT p.pname, spj.qtyFROM p, spj
WHERE p.pno=spj.pno AND spj.jno='J2';
5.找出上海厂商供应的所有零件的代码
SELECT DISTINCT pnoFROM spj, s
WHERE spj.sno=s.sno AND s.city='上海';
6.找出使用上海产的零件的工程项目名
SELECT jnameFROM j, spj, s
WHERE j.jno=spj.jno AND spj.sno=s.sno AND s.city='上海';
7.找出没有使用天津产的零件的工程项目代码
SELECT jnoFROM j
WHERE NOT EXISTS
(SELECT 'X' FROM spj,s
WHERE spj.jno=j.jno AND spj.sno=s.sno AND s.city='天津');
8.把全部红色零件的颜色改成蓝色
UPDATE p
SET color='蓝'WHERE color='红';
9.由S5供给J4的零件P6改为由S3供应
UPDATE spjSET sno='s3'
WHERE sno='S5' AND jno='J4' AND pno='P6';
10.从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录
DELETE FROM sWHERE sno='S2';DELETE FROM spjWHERE sno='S2';
11.试将(S2, J6, P4, 200)插入供应情况关系
INSERT INTO spj(sno, jno, pno, city)VALUES('S2', 'J6', 'P4', 200);
因篇幅问题不能全部显示,请点此查看更多更全内容