数据库实验(二)之数据更新(2020-5-25)

实验二 数据更新

一、实验目的
要求学生熟练使用 SQL Server Management Studio 和 T-SQL 语句对表中的 数据进行有效的管理。
二、实验内容
1、插入数据;
2、修改数据;
3、删除数据;
三、实验指导
1、使用 SQL Server Management Studio 直接更新数据
操作步骤如下:
在“对象资源管理器”中依次展开“数据库”→TPCH→“表”,选择要输入数据的表,然后右击,在弹出的快捷菜单中选择“编辑前200 行”命令。 如果要删除记录,只需选择行头,然后右击,在弹出的快捷菜单中选择“删 除”命令,在弹出的删除提示对话框中单击“是”按钮。 如果要修改某条记录,选择该记录所对应的字段项就可以直接修改。 如果要添加新记录,将鼠标定位到最后一行,依次输入每个字段项即可,注 意字段类型的要求。 提醒:在删除时,要注意表间的约束关系(先删除从表中的记录,再删除主 表记录)
提醒:在删除时,要注意表间的约束关系(先删除从表中的记录,再删除主 表记录)

实验 2.1 利用 SQL Server ManagementStudio 往 TPCH 数据库的 8 个表中 添加数据,各表示例数据如表 2.1—表 2.8 所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、使用 T-SQL 更新数据
使用 SQL Server Management Studio 直接更新数据,一般一次只能对一条 数据进行操作,使用 T-SQL 更新数据,可以实现批量数据插入、修改和删除。
实验 2.3 T-SQL 更新数据。
理解和掌握 INSERT、UPDATE 和 DELETE 语法结构的各个组成成分,结合嵌套 SQL 子查询,分别设计几种不同形式的插入、修改和删除数据的语句。
1) INSERT 基本语句(插入全部列的数据)
插入一条顾客记录,要求每列都给一个合理的值。
INSERT INTO Customer
VALUES (4,‘李明’,‘北京市’,1,010-342342,342341,‘华北’,NULL)
在这里插入图片描述
在这里插入图片描述

2) INSERT 基本语句(插入部分列的数据)
插入一条订单记录,给出必要的几个字段值
INSERT INTO
Orders(orderkey,custkey,orderstatus,totalprice,orderdate)
VALUES (1,4,0,1500,‘2019-05-2’)
在这里插入图片描述
在这里插入图片描述

3) INSERT语句批量插入数据
①创建一个新的顾客表,存放所有中国籍顾客;
CREATE TABLE dbo.CustomerChina(
custkey int NOT NULL PRIMARY KEY,
name varchar(25) NULL,
address varchar(40) NULL,
nationkey int NULL REFERENCES dbo.Nation (nationkey),
)
②将从Customer表中查询到的中国顾客全部插入到CustomerChina表中。
INSERT INTO CustomerChina
SELECT custkey,name,address,nationkey
FROM Customer
WHERE nationkey=1
注:上述方法适用于数据保存的对象 CustomerChina 已经存在,如果 CustmerChina 未建立,可以直接使用下列语句:
SELECT custkey,name,address,nationkey
INTO CustmerChina
FROM Customer
WHERE nationkey=1
在这里插入图片描述
在这里插入图片描述

4)UPDATE语句(带条件修改部分记录的部分列值)
将Part表中,原来制造商为“人大”的零件改为“人民大学”;
UPDATE Part
SET mfgr=‘人民大学’
WHERE mfgr=‘人大’
在这里插入图片描述
在这里插入图片描述

5)UPDATE语句(通过查询修改部分记录的部分列值)
将“金仓集团”供应的所有零件的供应成本价下降10%。
UPDATE PartSupp
SET supplycost=supplycost*0.9
WHERE suppkey=(SELECT suppkey
FROM Supplier
WHERE name=‘金仓集团’)
在这里插入图片描述

6)UPDATE语句(利用一个表中的数据修改另外一个表中的数据)
将PartSupp(零件供应表)中零件的供应价格supplycost改为零件表Part 中零售价格retailprice的115%(净利润15%)
UPDATE PartSupp
SET supplycost=Part.retailprice*1.15
FROM Part
WHERE PartSupp.partkey=Part.partkey
在这里插入图片描述
在这里插入图片描述

7)DELETE 基本语句(删除给定条件的所有记录)
删除姓名为“李明”的顾客。
DELETE FROM Customer
WHERE name=‘李明’
在这里插入图片描述
在这里插入图片描述

8)DELETE基本语句(根据查询结果删除记录)
删除“大洋洲”的所有供应商。
DELETE FROM Supplier
WHERE nationkey IN (SELECT nationkey
FROM Nation,Region
WHERE Nation.regionkey=Region.regionkey AND
Region.name=‘大洋洲’)
在这里插入图片描述
在这里插入图片描述

四.实验心得
这次实验特别搞心态,很多问题解决不出来就很烦躁。在第一个插入数据的表,就出现了“违反了PRIMARY KEY约束’PK_Customers’.不能在对象’dbo.Customers’中插入重复键.语句已终止”,其实是出现在Customers中主键重复,但在这个表中没有找到重复的数据,然后是SQLHELPER中的问题,填充一次数据和第二次填充的数据一样,找到重负的记录,我在Customers中右击选择“执行SQL(X)”选项,然后数据被插入,但是你取消主键约束,你就会发现插入的数据出现了两行一样的数据,继续恢复主键约束,把Customers表中的插入的新数据删除掉,回到T-SQL语句处重新执行,命令就执行了。当然在做增查删改的时候,输入的T-SQL语句最好一次成功。如果语句少输入或者输入错误,在数据库系统中,新建立的表的数据是一直保存的,我因为少输入一个新建立的表的数据类型时出现了“列名或所提供的数目与表定义不匹配”的问题,当用下面的语句二的时候会提示“表已存在”,所以只需要用第一种方法的语句,但少输入数据类型,我一开始准备改一下这个表的属性,把少输入的添加上去再重新执行,发现这样并不能解决问题。所以只能把这个表所有的数据删除掉,然后重新输入语句建立新的表,然后就可以执行了。在删除某个人的数据时,你会发现这个人的数据不仅在一个表中,想要删掉这个人的数据,要先把这个人的订单删掉,再删掉人,也就是找到这个人数据的源头,删掉源头再删除订单。这就告诉我们,千万不要输错或者少输数据,否则麻烦的很,当然很多人出现主键约束的问题却发现不了问题所在的时候,选择把所有的表都删除,这个方法是可行的,但是很麻烦,出现问题了,一定要心态稳,去发现问题,借助工具解决问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值