14.查询至少供应了工程J1所使用的全部零件的供应商名称。
SELECT SNAME FROM S WHERE EXISTS ( SELECT * FROM SPJ
WHERE S.SNO=SPJ.SNO AND EXISTS
(SELECT PNO FROM SPJ WHERE JNO='J1')) 结果如图:
15.查询供应情况,显示内容为供应商名称、零件名、工程名称、数量。
SELECT SNAME 供应商名称,PNAME 零件名称, JNAME 工程名称,QTY 数量 FROM S
JOIN SPJ ON S.SNO=SPJ.SNO JOIN P ON P.PNO=SPJ.PNO JOIN J ON J.JNO=SPJ.JNO 结果如图:
16.查询“东方红”供应商供应情况,显示供应的零件名、工程名称、数量。
SELECT PNAME 零件名称,JNAME 工程名称, QTY 数量 FROM SPJ
JOIN S ON SPJ.SNO=S.SNO JOIN P ON SPJ.PNO=P.PNO JOIN J ON SPJ.JNO=J.JNO WHERE SNAME='东方红'
结果如图:
5、请为机车厂工程项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量。针对该试图完成如下查询并将SQL语句写入实验报告。
(1)查询机车厂工程项目使用的各种零件代码及其数量。 (2)查询处供应商S2的供应情况。 语句如下:
CREATE VIEW V_JC(SNO,PNO,QTY) AS
SELECT SNO,PNO ,QTY FROM SPJ JOIN J ON J.JNO=SPJ.JNO WHERE JNAME='机车厂' 5(1)
SELECT PNO,QTY FROM V_JC GROUP BY PNO,QTY 结果如图:
5(2)
SELECT * FROM V_JC WHERE SNO='S2' 结果如图:
四、实验总结
通过本次上机实验,我学到了在现有的数据库上进行各种查询操作,对视图的创建、使用等操作。了解到了如何对数据库进行查询操作,在做题的过程中也发现了自己的一些不足,比如:where后面不能加聚合函数,应该先把如何求的算法写出,再去写程序代码。提高了自己实际操作的水平。