好文档 - 专业文书写作范文服务资料分享网站

河北工业大学数据库原理及应用实验实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

.

.

《数据库原理及应用实验》

实验报告

班级:网络151

姓名:徐毅民 学号:153299

.

实验1 数据库定义与操作语言实验

实验1.4 数据更新实验 1、实验目的

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

2、实验内容和要求

针对TPC-H数据库设计数据单元组插入、批量数据插入、修改数据和删除数据等SQL语句。理解和掌握INSERTT、UPDATE、和DELETE语法结构的各个组成成分,结合嵌套SQL子查询,分别设计几种不同形式的插入、修改和删除数据的语句,并调试成功。 3、实验重点和难点

实验重点:插入、修改和删除数据的SQL

实验难点:与嵌套SQL子查询相结合的插入、修改和删除数据的SQL语句;利用一个表的数据来插入、修改和删除另一个表的数据。 4、实验报告示例

(1)INSERT基本语句(插入全部列的数据) 插入一条顾客记录,要求每列都给一个合理的值。

INSERT INTO Customer

VALUES (30,'张三','北京市',40,'010-51001199',0.00,'Northeast','VIP Customer'); (2)INSERT基本语句(插入部分列的数据) 插入一条订单记录,给出必要的几个字段值。

INSERT INTO Lineitem(orderkey,Linenumber,partkey,suppkey,quantity,shipdate) VALUES(862,ROUND(RANDOM()*100,0,479,1,10,'2012-3-6'); /*RANDOM()函数为随机小数生成函数,ROUND()为四舍五入函数*/ (3)批量数据INSERT语句

① 创建一个新的顾客表,把所有中国籍顾客插入到新的顾客表中。

INSERT INTO NewCustomer /*批量插入SELECT 语句查询结果到NewCustomer表中*/ SELECT C.*

FROM Costomer C,Nation N

WHERE C.nationkey=N.nationkey AND N.name='中国';

.

.

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

CREATE TABLE ShoppingStat(

custkey INTEGER,

quantity REAL, totalprice REAL);

INSERT INTO ShoppingStat

SELECT C.custkey,Sum(L.quantity),Sum(O.totalprice) FROM Customer C,Order O,Lineitem L

WHERE C.custkey=O.custkey AND O.orderkey=L.orderkey GROUP BY C.custkey

③ 倍增零件表的数据,多次重复执行,直到总记录数达到50万为止。

INSERT INTO Part

SELECT partkey+(SELECT COUNT(*) FROM Part), name,mfgr,brand,type,size,container,retailprice,comment FROM Part;

(4)UPDATE语句(插入部分记录的部分列值) “金仓集团”供应的所有零件的供应成本价下降10%。

UPDATE PartSupp

SET supplycost=supplycost*0.9 WHERE suppkey=(

SELECT suppkey

FROM Supplier

WHERE name='金仓集团');

(5)UPDATE语句(利用一个表中的数据修改另外一个表中的数据) 利用

Part

表中的零售价格来修改

Lineitem

中的

extendedprice,其中

/*找出要修改的那些记录*/

/*对分组后的数据求总和*/

extendedprice=Part.retailprice*quantity。

UPDATE Lineitem L

SET L.extendedprice=P.retailprice*L.quantity FROM Part P

WHERE L.partkey=P.partkey;

.

.

/*Lineitem表也可以直接与Part表相连接,而不需通过PartSupp连接*/ (6)DELETE基本语句(删除给定条件的所有记录) 删除顾客张三的所有订单记录。

DELECT FROM Lineitem WHERE orderkey IN(

SELECT orderkey

FROM Order O,Customer C

WHERE O.custkey=C.custkey AND C.name='张三');

DELECT FROM Order WHERE custkey=(

SELECT custkey

FROM Customer WHERE name='张三'); 实验1.5 视图实验 1、实验目的

熟悉SQL语言有关视图的操作,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。 2、实验内容和要求

针对给定的数据库模式,以及相应的应用需求,创建视图和带WITH CHECK OPTION的视图,并验证视图WITH CHECK OPTION选项的有效性。理解和掌握视图消除执行原理,掌握可更新视图和不可更新视图的区别。 3、实验重点和难点 实验重点:创建视图。

实验难点:可更新的视图和不可更新的视图之区别,WITH CHECK OPTION的验证。 4、实验报告示例

(1)创建视图(省略视图列名)

创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp1,要求列出供应零件的编号、零件名称、可用数量、零售价格、供应价格和备注等信息。

CREATE VIEW V_DLMU_PARTSUPP1 AS /*由SELECT子句目标列组成视图属性*/

.

/*先删除张三的订单明细记录*/

/*再删除张三的订单记录*/

.

SELECT P.partkey,P.name,PS.availqty,P.retailprice,PS.supplycost,P.comment FROM Part P,PartSupp PS,Supplier S

WHERE P.partkey=PS.partkey AND S.suppkey=PS.suppkey AND S.name='海大汽配'; (2)创建视图(不能省略列名的情况)

创建一个视图V_CustAvgOrder,按顾客统计平均每个订单的购买金额和零件数量,要求输出 顾客编号、姓名,平均购买金额和平均购买零件数量。

CREATE VIEW V_CustAvgOrder(custkey,cname,avgprice,avgquantity) AS

SELECT C.custkey,MAX(C.name),AVG(O.totalprice),AVG(L.quantity) FROM Customer C,Orders O,Lineitem L

WHERE C.custkey=O.custkey AND L.orderkey=O.orderkey GROUP BY C.custkey;

(3)创建视图(WITH CHECK OPTION)

使用WITH CHECK OPTION,创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp2,要求列出供应零件的编号、可用数量和供应价格等信息。然后通过该视图分别增加、删除和修改一条“海大汽配”零件供应记录,验证WITH CHECK OPTION是否起作用。

CREATE VIEW V_DLMU_PartSupp2 AS

SELECT partkey,suppkey,availqty,supplycost FROM PartSupp WHERE suppkey=(

SELECT suppkey

FROM Supplier

WHERE name='海大汽配')

WITH CHECK OPTION;

INSERT INTO V_DLMU_PartSupp2 VALUES (58889,5048,704,77760); UPADTE V_DLMU_PartSupp2 SET supplycost=12

.

河北工业大学数据库原理及应用实验实验报告

..《数据库原理及应用实验》实验报告班级:网络151姓名:徐毅民学号:153299.实验1数据库定义与操作语言实验实验1.4
推荐度:
点击下载文档文档为doc格式
8vfya7nw8c0daes3y3831emx02sb8q00vmz
领取福利

微信扫码领取福利

微信扫码分享