SPJ数据库例题

本文提供了一道关于SPJ数据库的论述题,详细介绍了S、P、J三张表的内容,并给出了SPJ表的构成。参考答案中,讨论了如何使用关系代数中的选择运算来处理满足多个条件的问题,参照了书本P51页的选择运算定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1道论述题:

书本P71页习题6:
设有一个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)求没有使用天津供应商生产的红色零件的工程号。

S表:
在这里插入图片描述
P表:
在这里插入图片描述
J表:
在这里插入图片描述
SPJ表:
在这里插入图片描述

参考答案:

注:列名之间用(逗号“,”),条件之间用and。
关系代数-选择运算条件表达式中,同时需满足两个条件,此时用“∧”

关系代数:
在这里插入图片描述

/*SQL语句*/
/*1、供应工程J1零件的供应商号码SNO*/
select distinct SNO
from SPJ
where JNO='J1'
/*2、求供应工程J1零件P1的供应商号码SNO*/
select distinct SNO
from SPJ
where JNO='J1' and PNO='P1'
/*3、求供应工程J1零件为红色的供应商号码*/
select distinct SNO
from P,SPJ
where P.PNO=SPJ.PNO and JNO='J1' and COLOR='红'
/*4、求没有使用天津供应商生产的红色零件的工程号JNO*/
select JNO
from J
where JNO not in(select JNO
				 from S,SPJ,P
				 where S.SNO=SPJ.SNO and SPJ.PNO=P.PNO 
				       and CITY='天津' and COLOR='红'
				 )

附书本P51页关于选择运算的定义:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值