数据库实验报告数据更新

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大连海事大学

数据库原理课程实验大纲

实验名称:实验四数据更新实验学时: 2

适用专业:智能科学与技术

实验环境: SQL Server Management Studio 1实验目的

(1)掌握SQL数据更新语句的基本使用方法,如UPDATE、DELETE、INSERT。

(2)掌握更新语句条件中的嵌套查询使用方法。

2实验内容

2.1 掌握SQL更新语句的基本使用方法

(1)INSERT基本语句。

(2)UPDATE基本语句。

(3)DELETE基本语句。

2.2 掌握SQL更新语句的高级使用方法

(1)INSERT批量插入语句。

(2)UPDATE语句使用嵌套子查询。

(3)DELETE语句使用嵌套子查询。

3实验要求

(1)深入复习教材第三章SQL有关更新语句。

(2)根据书上的例子,针对TPCH数据库模式设计各种更新语句,每种类型更新语句至少要设计一个,描述清楚数据更新要求,运行你所设计的更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例查询做实验。

(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。

4实验步骤

4.1 掌握SQL更新语句的基本使用方法

(1)INSERT基本语句(插入全部列的数据)。

插入一个新顾客的记录,要求每列都给一个合理的值

SET SEARCH_PA TH TO SALES,PUBLIC;

INSERT

INTO

CUSTOMER(CUSTKEY,NAME,ADDRESS,NATIONKEY,PHONE,ACCTBAL,MKTSEGMENT,C OMMENT)

V ALUES('28','陆奕诚',’江苏','40','140',2,'1市区','我');

(2)INSERT基本语句(插入部分列的数据,要求随机生成某些数字列或者字符列的数据)。

插入一条订单记录,可以只给出必要的几个字段的值,其中数值字段可以用RANDOM函数随机生成数值

INSERT

INTO ORDERS(ORDERKEY,CUSTKEY,TOTALPRICE,SHIPPRIORITY)

V ALUES(2600,17,1000000*RANDOM(),10000*RANDOM());

(3)UPDATE基本语句(修改所有记录的某些列的值)。

修改所有零件的零售价,使其价格上浮10%

UPDATE PART

SET RETAILPRICE=RETAILPRICE*1.1;

(4)UPDATE基本语句(修改部分记录的某些列的值)。

修改顾客张三的国籍

UPDATE CUSTOMER

SET NATIONKEY=40

WHERE NAME='张三';

(5)DELETE基本语句(删除所有记录)

DELETE

FROM ORDERS;

(6)DELETE基本语句(删除部分记录)。

DELETE

FROM ORDERS

WHERE ORDERDATE BETWEEN '2000-1-30' AND '2011-2-28';

(7)INSERT批量插入语句(把一个查询结果插入到另外一个表中)。

创建一个顾客购物统计表,记录每个顾客及其购物总数和总价等信息

首先建立一个CUSTOMERITEM的表:

CREATE TABLE CUSTOMERITEM

(CUSTKEY INTEGER PRIMARY KEY,

NAME V ARCHAR(25),

QUANTITY INTEGER,

TOTALPRICE INTEGER);

然后填入数据:

INSERT

INTO CUSTOMERITEM(CUSTKEY,NAME,QUANTITY,TOTALPRICE)

SELECT A.CUSTKEY,NAME,COUNT(ORDERKEY),SUM(TOTALPRICE)

FROM CUSTOMER A,ORDERS B

WHERE A.CUSTKEY=B.CUSTKEY

GROUP BY A.CUSTKEY,NAME

(8)INSERT批量插入语句(使某个表的数据量倍增)。

把零件表的数据插入零件表中,使其数量增倍。

把零件表的数据插入零件表中,多次重复执行,知道总记录数达到50万为止,记录下你执行了多少次?执行过程中你是如何保证实体完整性约束的?

INSERT

INTO PART(PARTKEY,NAME,SIZE,RETAILPRICE)

SELECT PARTKEY+1080,NAME,RANDOM()*100,RANDOM()*1000

FROM PART;

(9)UPDATE语句使用嵌套子查询(利用一个表中的数据来判断是否修改另外一个表中的数据)。

修改顾客张三的订单明细记录中111号零件的折扣

UPDATE LINEITEM C

SET DISCOUNT=0.5

WHERE 111=(SELECT PARTKEY

FROM CUSTOMER A,ORDERS B

WHERE A.CUSTKEY=B.CUSTKEY AND B.ORDERKEY=C.ORDERKEY AND ='张三')

(10)UPDATE语句使用嵌套子查询(利用一个表中的数据修改另外一个表中的数据)。

利用PARTSUPP 表中的供应价格来修改LINEITEM中的EXTENDEDPRICE,假设:EXTENDEPRICE = SUPPL YCOST * QUANTITY * DISCOUNT

UPDATE LINEITEM

SET EXTENDEDPRICE=PARTSUPP.SUPPL YCOST*QUANTITY*DISCOUNT

FROM PARTSUPP

WHERE PARTSUPP.PARTKEY=LINEITEM.PARTKEY;

(11)DELETE语句使用嵌套子查询(利用一个表中的数据来判断是否删除另外一个表中的数据)。

删除顾客张三的订单记录。

DELETE

FROM ORDERS

WHERE (SELECT ORDERKEY

相关文档
最新文档