数据库实验三:数据更新

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='澳大利亚');

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

posted @ 2024-08-17 11:05  在天边偷看小天使  阅读(38)  评论(0)    收藏  举报  来源