数据库实验三
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='澳大利亚');
存在外键,默认情况拒绝删除