数据库实验三:数据更新

1、给供应商表插入一条记录,每列的值要给的合理。

INSERT INTO supplier VALUES (999999,'河北工业大学','天津市北辰区',40,'888888',1957.79,'test');

SELECT * FROM supplier WHERE name='河北工业大学';

 SELECT sup.suppkey,sup.name,sup.address,sup.nationkey,nat.name
  FROM nation nat,supplier sup
   WHERE sup.name='河北工业大学' && sup.nationkey=nat.nationkey;

在这里插入图片描述

2、把所有中国籍顾客的所有信息插入到一个新的顾客表(customernew)中。

CREATE TABLE customernew AS SELECT * FROM customer WHERE nationkey IN (SELECT nationkey FROM nation WHERE name='中国');

SELECT * FROM customernew;

在这里插入图片描述
在这里插入图片描述

3、3、 把每个顾客及其购物总数量和购物总价等信息插入到顾客统计表(cusshopping)

CREATE TABLE cusshopping AS SELECT custkey,COUNT(*) AS totalcount,SUM(totalprice) AS totalprice_custkey 
 FROM orders GROUP BY custkey; 

SELECT * FROM cusshopping;

在这里插入图片描述

在这里插入图片描述

4、把“深圳市鸿运贸易有限公司”供应的所有零件的供应价格降价20%。


SELECT supplycost FROM partsupp WHERE suppkey IN (SELECT suppkey FROM supplier WHERE name='深圳市鸿运贸易有限公司');

UPDATE partsupp SET supplycost=supplycost*0.80
 WHERE suppkey IN (SELECT suppkey FROM supplier WHERE name='深圳市鸿运贸易有限公司');

SELECT supplycost FROM partsupp WHERE suppkey IN (SELECT suppkey FROM supplier WHERE name='深圳市鸿运贸易有限公司');

在这里插入图片描述

5、更新订单明细表中的订单明细价格,订单明细价格(extendedprice)=零售价格(part.retailprice)* 零件数量(quantity)。

SELECT extendedprice FROM lineitem;

UPDATE lineitem,part SET lineitem.extendedprice=lineitem.quantity*part.retailprice
 WHERE lineitem.partkey=part.partkey;

SELECT extendedprice FROM lineitem;

SELECT COUNT(*) FROM lineitem;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6、删除顾客“童帅”的所有订单明细记录和订单记录。

SELECT orderkey
 FROM orders
  WHERE custkey
   IN (SELECT custkey
    FROM customer
     WHERE name='童帅');

SELECT linenumber
 FROM lineitem
  WHERE orderkey
   IN (SELECT orderkey
        FROM orders WHERE custkey
         IN(SELECT custkey
          FROM customer
           WHERE name='童帅'));

DELETE FROM lineitem 
 WHERE orderkey 
  IN (SELECT orderkey
        FROM orders WHERE custkey
         IN(SELECT custkey
          FROM customer
           WHERE name='童帅'));
           
DELETE FROM orders
 WHERE orders.custkey 
  IN (SELECT custkey
   FROM customer
    WHERE name='童帅');

SELECT orderkey
 FROM orders
  WHERE custkey
   IN (SELECT custkey
    FROM customer
     WHERE name='童帅');

SELECT linenumber
 FROM lineitem
  WHERE orderkey
   IN (SELECT orderkey
        FROM orders WHERE custkey
         IN(SELECT custkey
          FROM customer
           WHERE name='童帅'));

在这里插入图片描述

在这里插入图片描述

7、删除“澳大利亚”的所有供应商信息。

SELECT suppkey,nationkey FROM supplier WHERE nationkey IN (SELECT nationkey FROM nation WHERE name='澳大利亚');

DELETE FROM supplier WHERE nationkey IN (SELECT nationkey FROM nation WHERE name='澳大利亚');

SELECT suppkey,nationkey FROM supplier WHERE nationkey IN (SELECT nationkey FROM nation WHERE name='澳大利亚');

在这里插入图片描述
存在外键,默认情况拒绝删除
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值