一、实验目的
1.掌握无条件查询的使用方法。
2.掌握条件查询的使用方法。
3.掌握聚族函数及汇总查询的使用方法。
4.掌握分组查询的使用方法。
5.掌握查询的排序方法。
6.掌握连接查询、嵌套查询的使用方法。
二、实验内容
根据实验1-2中创建的SPJ数据库以及其中的S表、P表、J表和SPJ表,进行以下的查询操作(每一个查询都要给出SQL语句,列出查询结果,建议使用截图方式)。
(1)查找供应工程J1零件的供应商号码SNO
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 SNAME,CITY FROM S;
SELECT PNAME,COLOR,WEIGH FROM P;
SELECT JNO FROM SPJ WHERE SNO='S1';
SELECT PNAME,QTY FROM P,SPJ
WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'
(8)找出上海厂商供应的所有零件号码
SELECT DISTINCT PNO FROM S,SPJ
WHERE S.SNO=SPJ.SNO AND S.CITY='上海';
(9)找出使用上海产的零件的工程名称
SELECT JNAME FROM J,S,SPJ
WHERE J.JNO=SPJ.JNO AND S.SNO=SPJ.SNO AND S.CITY='上海';
(10)找出没有使用天津产的零件的工程号码JNO
SELECT JNO FROM J WHERE NOT EXISTS
(SELECT * FROM S,SPJ
WHERE J.JNO=SPJ.JNO AND S.SNO=SPJ.SNO AND S.CITY='天津'
);
(11)找出没有使用天津供应商生产的红色零件的工程号 JNO
SELECT JNO FROM J WHERE NOT EXISTS
( SELECT * FROM SPJ,S,P
WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO
AND SPJ.PNO=P.PNO AND S.CITY='天津' AND P.COLOR='红'
);
(12)找出至少用了供应商S1所供应的全部零件的工程号JNO
SELECT DISTINCT JNO FROM SPJ Z WHERE NOT EXISTS
(SELECT * FROM SPJ X WHERE SNO='S1' AND NOT EXISTS
(SELECT * FROM SPJ Y WHERE Y.PNO=X.PNO AND Y.JNO=Z.JNO)
);