数据库原理难题,设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:注意分别用关系代数和SQL语句哦

设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO... 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNANE,CITY);
SPJ(SNO,PNO,JNO,QTY)。
其中:供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
试分别用关系代数和sql语句写出如下查询:

1)求供应工程J1 零件的供应商号码SNO。
2)求供应工程J1 零件P1的供应商号码SNO。
3)求供应工程J1 零件为红色的供应商号码SNO。

4)求没有使用天津供应商生产的红色零件的工程号。
5)求至少用了供应商S1所供应的全部零件的工程号。
展开
 我来答
不熬yeah
高粉答主

2019-12-21 · 说的都是干货,快来关注
知道小有建树答主
回答量:1793
采纳率:100%
帮助的人:41.7万
展开全部
关系代数:
1)求供应工程J1零件的供应商号码SNO:
πSno(σSno=‘J1’(SPJ))
2)求供应工程J1零件P1的供应商号码SNO:
πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供应工程J1零件为红色的供应商号码SNO:
πSno(σPno=‘P1‘(σCOLOR=’红‘ (P)∞SPJ))
4)求没有使用天津供应商生产的红色零件的工程号JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)
5)求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
sql语句:
( l )求供应工程 Jl 零件的供应商号码 SNO ;
SELECT SNO FROM SPJ WHERE JNO=’J1’
( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;
SELECT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'
( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ;
SELECT SNO FROM SPJ,P WHEREJNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'
( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO ;
SELECT JNO FROM SPJ WHERE JNO NOT IN(SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' ANDS.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
( 5 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ;
由于VFP不允许子查询嵌套太深,将查询分为两步
A、查询S1供应商供应的零件号
SELECT PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2)
B、查询哪一个工程既使用P1零件又使用P2零件。
SELECT FROM SPJ WHEREPNO='P1'
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')
我行我素的兔子
推荐于2017-09-10 · 知道合伙人互联网行家
我行我素的兔子
知道合伙人互联网行家
采纳数:653 获赞数:2095
15年在IT领域耕耘,软件系统管理经验、硬件设备知识丰富。

向TA提问 私信TA
展开全部
1、select SNO from SPJ, J where J.JNO=SPJ.JNO and JNAME='J1'
2、select SNO from SPJ, J, P where J.JNO=SPJ.JNO and P.PNO=SPJ.JNO and JNAME='J1' and PNAME='P1'
3、select SNO from SPJ, J, P where J.JNO=SPJ.JNO and P.PNO=SPJ.JNO and JNAME='J1' and COLOR='红色'
4、select JNO from SPJ where SNO IN (select SNO from S where city<>'天津') and PNO in (select PNO from P where COLOR='红色' )
5、
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
真征假假
2020-09-21
知道答主
回答量:1
采纳率:0%
帮助的人:561
展开全部
关系代数:
1)求供应bai工程J1零件的供应商du号码SNO:zhi
πSno(σSno=‘J1’(SPJ))
2)求供应工程daoJ1零件P1的供应商号码SNO:
πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供应工程J1零件为红色的供应商号码SNO:
πSno(σPno=‘P1‘(σCOLOR=’红‘ (P)∞SPJ))
4)求没有使用天津供应商生产的红色零件的工程号JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)
5)求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吴勇一家人
推荐于2017-09-13 · TA获得超过2407个赞
知道小有建树答主
回答量:304
采纳率:50%
帮助的人:72.6万
展开全部
关系代数:
1)求供应工程J1零件的供应商号码SNO:
πSno(σSno=‘J1’(SPJ))
2)求供应工程J1零件P1的供应商号码SNO:
πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供应工程J1零件为红色的供应商号码SNO:
πSno(σPno=‘P1‘(σCOLOR=’红‘ (P)∞SPJ))
4)求没有使用天津供应商生产的红色零件的工程号JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)
5)求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

sql语句:
( l )求供应工程 Jl 零件的供应商号码 SNO ;
SELECT SNO FROM SPJ WHERE JNO=’J1’
( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;
SELECT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'
( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ;
SELECT SNO FROM SPJ,P WHEREJNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'
( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO ;
SELECT JNO FROM SPJ WHERE JNO NOT IN(SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' ANDS.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
( 5 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ;
由于VFP不允许子查询嵌套太深,将查询分为两步
A、查询S1供应商供应的零件号
SELECT PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2)
B、查询哪一个工程既使用P1零件又使用P2零件。
SELECT FROM SPJ WHEREPNO='P1'
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式