数据库实验4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连海事大学
数据库原理课程实验报告(2016-2017学年第二学期)
实验四数据更新
班级:智能科学与技术1班
学号:**********
*名:***
指导教师:**
成绩:
大连海事大学
数据库原理课程实验大纲
实验名称:实验四数据更新实验学时: 2
适用专业:智能科学与技术
实验环境: SQL.serve2008
执笔者:刘宇轩编写日期: 2017-5-29
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基本语句(插入全部列的数据)。
插入一个新顾客的记录,要求每列都给一个合理的值
插入一条订单明细记录,要求每列都给一个合理的值
INSERT
INTO
CUSTOMER(CUSTKEY,NAME,ADDRESS,NATIONKEY,PHONE,ACCTBAL,MKTSEGMENT,COMMENT )
VALUES(8,'剑心','北海道',5,594579,13.3,'同心','无')
原图
插入后图
(2)INSERT基本语句(插入部分列的数据,要求随机生成某些数字列或者字符列的数据)。
插入一条订单记录,可以只给出必要的几个字段的值,其中数值字段可以用RANDOM函数随机生成数值
INSERT
INTO
ORDERS(ORDERKEY,CUSTKEY,ORDERSTATUS,TOTALPRICE,ORDERDATE,ORDERPRIORITY,CLER K,SHIPPRIORITY,COMMENT)
VALUES(8,3,RAND()*10,10000,'2015-4-4',RAND()*1000,RAND()*1000,RAND()*1000,'无')
原图
更新图
(3)UPDATE基本语句(修改所有记录的某些列的值)。
修改所有零件的零售价,使其价格上浮10%
UPDATE PART
SET retailprice=retailprice*1.1
原图
更新图
(4)UPDATE基本语句(修改部分记录的某些列的值)。
修改顾客张三的国籍
UPDATE CUSTOMER
SET NATIONKEY=2
WHERE NAME='张三'
原图
更新后图
(5)DELETE基本语句(删除所有记录)。
删除所有订单记录
DELETE
FROM lineitem
WHERE orderkey IN(
SELECT orderKEY
FROM orders)
DELETE
FROM ORDERS
(6)DELETE基本语句(删除部分记录)。
删除2016年1月1日之前订单记录
DELETE
FROM lineitem
WHERE orderkey IN(
SELECT orderKEY
FROM orders
WHERE
ORDERDATE<'2016-1-1')
DELETE
FROM ORDERS
WHERE ORDERDATE<'2016-1-1'
4.2 掌握SQL更新语句的高级使用方法
(7)INSERT基本语句(插入全部列的数据)。
插入一个新顾客的记录,要求每列都给一个合理的值
插入一条订单明细记录,要求每列都给一个合理的值
INSERT
INTO
CUSTOMER(CUSTKEY,NAME,ADDRESS,NATIONKEY,PHONE,ACCTBAL,MKTSEGMENT,COMMENT )
VALUES(8,'剑心','北海道',5,594579,13.3,'同心','无')
原图
插入后图
(8)INSERT基本语句(插入部分列的数据,要求随机生成某些数字列或者字符列的数据)。
插入一条订单记录,可以只给出必要的几个字段的值,其中数值字段可以用RANDOM函数随机生成数值
INSERT
INTO
ORDERS(ORDERKEY,CUSTKEY,ORDERSTATUS,TOTALPRICE,ORDERDATE,ORDERPRIORITY,CLER K,SHIPPRIORITY,COMMENT)
VALUES(8,3,RAND()*10,10000,'2015-4-4',RAND()*1000,RAND()*1000,RAND()*1000,'无')
原图