sql一个道题目求解!

2025-03-23 17:43:44
推荐回答(2个)
回答1:

看你的意思,
产品表的主键为ProductID
销售计划表的主键为(ProductID,客户名),外键为ProductID

1、不能删除name2的产品。因为数据库外键约束默认情况:销售计划表有name2的ProductID=2,是不能删除的。除非你在销售计划表删除所有产品名为name2的元组,否则是不能删除产品表name2的产品。
当然,你在建销售计划表时建外键有以下声明:
foreign key(ProductID) references 产品表(ProductID) on delete cascade on update cascade ,结果是不一样的。不过估计你没有这样声明。

2、
update 销售计划表 set
销售单价=
(select 单价 from 产品表 where 产品 表.ProductID=ProductID limit 1)
where 客户名=m and ProductID in(select ProductID from
产品表 where 产品名=name2);

3.
select 客户名,sum(销售单价*订货数量) from 销售计划表 group by 客户名

回答2:

1# 可以,因为两个表可以通过ProductID进行关联查询,name2只是普通属性。
2# update 销售计划表 set 销售单价 = 产品表.单价 where 销售计划表.ProductID = 产品表.ProductID and 售计划表.ProductID = 2
3# select 客户名, sum(订货数量*销售单价) from 销售计划表 group by 客户名