数据库系统概论第五版第3章课后习题

该篇文章详细展示了如何在数据库中创建表、插入数据以及执行各种SQL查询、更新和删除操作,涉及S、P、J三个表之间的关系管理。
摘要由CSDN通过智能技术生成
create database SPJ;

create table S
	(sno char(4),
	sname varchar(20),
	status int,
	city varchar(20));

create table P
	(pno char(4),
	pname varchar(20),
	color char(4),
	weight int);

create table J
	(jno char(4),
	jname varchar(20),
	city varchar(20));

create table SPJ
	(sno char(4),
	pno char(4),
	jno char(4),
	qty int);

insert into S values
	('S1','精益',20,'天津'),
	('S2','盛锡',10,'北京'),
	('S3','东方红',30,'北京'),
	('S4','丰泰盛',20,'天津'),
	('S5','为民',30,'上海');

insert into P values
	('P1','螺母','红',12),
	('P2','螺栓','绿',17),
	('P3','螺丝刀','蓝',14),
	('P4','螺丝刀','红',14),
	('P5','凸轮','蓝',40),
	('P6','齿轮','红',30);

insert into J values
	('J1','三建','北京'),
	('J2','一汽','长春'),
	('J3','弹簧厂','天津'),
	('J4','造船厂','天津'),
	('J5','机车厂','唐山'),
	('J6','无线电厂','常州'),
	('J7','半导体厂','南京');

insert into SPJ values
	('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',300),
	('S5','P6','J4',500);

select * from S;
select * from P;
select * from J;
select * from SPJ;

--找出所有供应商的姓名和所在的城市
select sname,city from S;

--找出零件的名称、颜色、重量
select pname,color,weight from P;

--找出使用供应商S1所供应零件的工程代码
select jno from SPJ where sno='S1';

--找出工程项目J2使用的各种零件的名称及其数量
select pname,qty from P,(select pno,qty from SPJ where jno='J2') as D
where P.pno=D.pno;

--找出上海厂商供应的所有零件代码
select distinct pno from SPJ where sno in (select sno from S where city like '上海');

--找出使用上海产的零件的工程名称
select distinct jname from J where jno in
(select distinct jno from SPJ where sno in (select sno from S where city like '上海'));

--找出没有使用天津产的零件的工程代码
select distinct jno from J where jno not in(
select distinct jno from SPJ where sno in
(select sno from S where city='天津'));

--把全部红色的零件改为蓝色
update P set color='蓝' where color='红';
select * from P;

--把由S5供给J2的零件P6改为S3供应
update SPJ set sno='S3' where sno='S5' and jno='J2';

--从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录
delete from SPJ where sno='S2';
delete from S where sno='S2';
select * from S;
select * from SPJ;

--请将(S2,P6,J4,200)插入供应情况关系
insert into SPJ values ('S2','P6','J4',200);

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值