这篇文章所用关系为上一篇文章所建的S,PJ,SPJ表
(1)找出所有供应商的姓名和所在城市
分析:直接查询供应商表即可,而且没有条件。
select SNAME,CITY
from S;
(2)找出所有零件的名称,颜色,重量
分析:这些属性都是P表的,直接查询P表即可
select PNAME,COLOR,WEIGHT
from p;
(3)找出使用供应商S1所供应零件的工程号码
分析:根据SNO查JNO,在SPJ表中查询即可
select JNO
from SPJ
where SNO='S1';
(4)找出工程项目J2使用的各种零件的名称和数量
分析:J2是J表和SPJ表的连接属性,数量是SPJ表的独有属性,这样看来只要用J2条件查询SPJ就可以了,但是,还有一个要列出的属性是名称,这是P表和SPJ表的连接属性,我们要列出它,那么最后一定要落到P表上,而且一定是通过PNO来连接,这相当于是一种映射,在SPJ表根据J2查找数量之余,在映射到P表,找出这些PNO的名称属性。
select P.PNAME,SPJ.QTY
from P,SPJ
where P.PNO = SPJ.PNO
and SPJ.JNO='J2';
(5)找出上海厂商供应的所有零件号码
分析:供应厂商是S表的特有属性,但是又要查询PNO,所以先在S表找,再通过SNO关联到SPJ表即可。
select distinct PNO
from SPJ
where SNO in
(
select SNO
from S
where CITY='上海'
);