SPJ 讨论

本文通过一个具体的SPJ数据库实例,介绍了如何利用SQL语言进行基本的数据库操作,包括创建表、插入数据、查询数据等,并提供了多个实际应用场景的SQL查询案例。

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

设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
S( SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,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。
S表
son sname status city
s1 精益 20 天津
s2 盛锡 10 北京
s3 东方红 30 北京
s4 丰泰盛 20 天津
s5 为民 30 上海
p表
pno pname color weight
P1 螺母 红 12
P2 螺栓 绿 17
P3 螺丝刀 蓝 14
P4 螺丝刀 红 14
P5 凸轮 蓝 40
P6 齿轮 红 30
J表
JNO JNAME CITY
J1 三建 北京
J2 一汽 长春
J3 弹簧厂 天津
J4 造船厂 天津
J5 机车厂 唐山
J6 无线电厂 常州
J7 半导体厂 南京
SPJ表
SNO PNO JNO QTY
S1 P1 J1 200
S1 P1 J3 100
S1 P1 J4 700
S1 P2 J2 100
S2 P3 J1 400
S2 P3 J2 200
S2 P3 J4 500
S2 P3 J5 400
S2 P5 J1 400
S2 P5 J2 100
S3 P1 J1 200
S3 P3 J1 200
S4 P5 J1 100
S4 P6 J3 300
S4 P6 J4 200
S5 P2 J4 100
S5 P3 J1 200
S5 P6 J2 200
S5 P6 J4 500
1、用SQL语句建立上面4个表
2、用sql完成以下各项操作:
1)找出所有供应商的姓名和所在城市;
2)找出所有零件的名称、颜色、重量;
3)找出使用供应商S1所供应零件的工程号码;
4)找出工程项目J2使用的各种零件的名称及数量
5)找出上海厂商供应的所有零件号码
6)找出使用上海产的零件的工程名称
7)找出没有使用天津产的零件的工程号码;
8)把全部红色零件的颜色改为蓝色;
9)由s5供应给J4的零件P6改为由S3供应,请做必要修改;
10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;
11)请将(S2,J6,P4,200)插入供应情况关系。

 

 

 

 

 

 

 

1. 创建表
以S表为例,P表、J表、SPJ表同理的。
create table s
(sno char(5),
sname char(20),
status char(8),
city char(15))
向表内插入记录,以第一条为例,其它同理。
insert into s values('s1','精益','20','天津')

2. 查询
1)select sname,city
   from s
2)select pname,color,weight
   from p
3)select jno
   from spj
   where sno='s1'
4)select pname,qty
   from p,spj
   where p.pno=spj.pno and jno='j2'
5)select pno
   from s,spj
   where s.sno=spj.sno and city='上海'
6)select jno
   from s,spj
   where s.sno=spj.sno and city='上海'
7)select jno
   from s,spj
   where s.sno=spj.sno and city not in('上海')
8)update p
   set color='蓝'
   where color='红'
9)update spj
   set sno='s3'
   where sno='s5' and jno='j4' and pno='p6'
10)delete
    from s
    where sno='s2'
    delete
    from spj
    where sno='s2'
(如果学过触发器的话,也可以用触发器做)
11)insert into spj
    values('s2','j6','p4','200')

转载于:https://www.cnblogs.com/wc1903036673/p/3401671.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值