数据库学习笔记和小练习(6)sql查询和更新练习

本文通过实例解析SQL查询和更新操作,涉及供应商表S、零件表P和工程零件表SPJ。内容包括:查询所有供应商信息、零件详细信息、使用特定供应商的工程号码、查找未使用特定产地零件的工程等复杂查询,以及数据删除和插入操作。通过这些练习,加深对SQL语法的理解。

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

这篇文章所用关系为上一篇文章所建的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='上海'
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值