数据库实验三 数据更新实验

1.实验目的

熟悉数据库的数据更新操作,能够使用 SQL 语句对数据库进行数据的增加、删除、修改操作。

2.实验内容和要求

针对 tpch 数据库或自建数据库 test 设计单行插入、批量插入、修改和删除数据操作,理解和掌握 insert、delete 和 update 语法结构的各个组成成分,结合嵌套 SQL 子查询,分别设计几种不同形式的语句,并调试通过。

3.实验步骤

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

源代码:

INSERT INTO supplier (
			suppkey,
			name,
			address,
			nationkey,
			phone,
			acctbal,
			comment
			)
		VALUES(
		131209,
		'腾讯控股',
		'广东省深圳市',
		227,
		'020-2456741',
		1300098203.20,
		'无'
		);

结果截图:(下图是使用可视化筛选出的结果,也可以使用SELECT语句进行查找结果 )

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

 源代码:

CREATE TABLE customernew AS SELECT
			customer.*
		FROM
			customer,
			nation
		WHERE
			customer.nationkey = nation.nationkey
		AND nation. NAME = '中国';

结果截图:

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

源代码:

CREATE TABLE cusshopping AS SELECT
			customer.custkey,
			customer. NAME,
			COUNT(*) AS shopping_num,
			SUM(totalprice) AS price_sum
		FROM
			customer,
			orders
		WHERE
			customer.custkey = orders.custkey
		GROUP BY
			orders.custkey
		ORDER BY
			orders.custkey;

 结果截图:

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

源代码:

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

结果截图:(下图是使用可视化筛选出的结果,也可以使用SELECT语句进行查找结果 )

更新前

更新后

 

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

源代码:

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

结果截图:

更新前

更新后

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

源代码:

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

结果截图:(下图是使用可视化筛选出的结果,也可以使用SELECT语句进行查找结果 )

删除前

  删除后

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

源代码:

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

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

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

结果截图:(下图是使用可视化筛选出的结果,也可以使用SELECT语句进行查找结果 )

删除前

 

 删除后

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力敲代码呀~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值