云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《数据库系统原理》实验报告

《数据库系统原理》实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 3:23:07

实验项目名称:数据库设计实验 实验学时: 4 同组学生姓名: 孟陈、陈晓雪、季佰军 实验地点: 1318 实验日期: 6.23 实验成绩: 批改教师: 批改时间:

一、实验目的和要求

1.掌握数据库PL/SQL编程语言,以及数据库存储过程的设计和使用方法; 2.掌握数据库PL/SQL编程语言以及数据库自定义函数的设计和使用方法; 3.掌握PL/SQL游标的设计、定义和使用方法,理解PL/SQL游标按行操作和SQL按结

果集操作的区别和联系。

二、实验内容及过程

1.存储过程定义,存储过程运行,存储过程更名,存储过程删除,存储过程的参数

传递。掌握数据库PL/SQL编程语言和编程规范,规范设计存储过程; 2.自定义函数定义,自定义函数运行,自定义函数更名,自定义函数删除,自定义函

数的参数传递。掌握PL/SQL和编程规范,规范设计自定义函数; 3.游标定义、游标使用。掌握各种类型游标的特点、区别和联系。

三、实验结果与分析

6.1 存储过程实验

(1)无参数的存储过程

① 定义一个存储过程,更新所有订单的(含税折扣价)总价 CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice() AS BEGIN

UPDATE Orders SET totalprice =

(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem

WHERE Orders.orderkey=Lineitem.orderkey);

END;

② 执行存储过程Proc_CalTotalPrice()

CALL Proc_CalTotalPrice();

(2) 有参数的存储过程

① 定义一个存储过程,更新给定订单的(含税折扣价)总价。

CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice4Order(okey INTEGER)

AS BEGIN

UPDATE Orders SET totalprice =

(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem

WHERE Orders.orderkey=Lineitem.orderkey AND

Lineitem.orderkey=okey);

END;

② 执行存储过程。

CALL Proc_CalTotalPrice4Order(5365);

(3)有局部变量的存储过程

① 定义一个存储过程,更新某个顾客的所有订单的(含税折扣价)总价。 CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice4Customer(p_custname

CHAR(25)) AS

DECLARE

L_custkey INTEGER;

BEGIN

SELECT custkey INTO L_custkey FROM Customer

WHERE name=TRIM(p_custname); UPDATE Orders SET totalprice=

(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem

WHERE Orders.orderkey=Lineitem.orderkey AND

Orders.custkey=L_custkey);

END;

② 执行存储过程Proc_CalTotalPrice4 Customer()。 CALL Proc_CalTotalPrice4Customer(‘陆皆宇’); ③ 查看存储过程执行结果 SELECT*FROM Orders

WHERE custkey=(SELECT custkey FROM Customer WHERE name=’陈凯峰‘);

(4)有输出参数的存储过程

① 定义一个存储过程,更新某个顾客的所有订单的(含税折扣价)总价。 CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice4Customer2(p_custname

CHAR(25),OUT p_totalprice REAL) AS DECLARE

L_custkey INTEGER; BEGIN

SELECT custkey INTO L_custkey FROM Customer

WHERE name=TRIM(p_custname);

RAISE NOTICE’custkey is %’,L_custkey; UPDATE Orders SET totalprice =

(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem

WHERE Orders.orderkey=

Lineitem.orderkey AND

Orders.custkey=L_custkey);

SELECT SUM(totalprice)INTO p_totalprice FROM Orders WHERE custkey =L_custkey; END;

② 执行存储过程Proc_CalTotalPrice4 Customer2() CALL Proc_CalTotalPrice4Customer2(‘陈凯峰’,null); ③ 查看存储过程执行结果 SELECT SUM(totalprice) FROM Orders

WHERE custkey=(SELECT custkey

FROM Customer

WHERE name=’陆皆宇‘);

(5)修改存储过程

① 修改存储过程名Proc_CalTotalPrice4Order为CalTotalPrice4Order ALTER PROCEDURE Proc_CalTotalPrice4Order RENAME TO CalTotalPrice4Order;

② 编译存储过程CalTotalPrice4Order

ALTER PROCEDURE CalTotalPrice4Order (okey INTEGER)COMPILE;

(6)删除存储过程

删除存储过程CalTotalPrice4Order。 DROP PROCEDURE CalTotalPrice4Order; 6.2 自定义函数实验

(1) 无参数的自定义函数

① 定义一个自定义函数,更新所有订单的(含税折扣价)总价,并返回所有订单的总

价之和。

CREATE OR REPLACE FUNCTION FUN_CalTotalPrice() RETURN REAL AS

DECLARE

res REAL; BEGIN

UPDATE Orders SET totalprice =

(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem

WHERE Orders.orderkey=Lineitem.orderkey);

SELECT SUM(toyalprice) INTO res FROM Orders; RETURN res; END;

② 执行自定义函数FUN_CalTotalPrice()。

SELECT TotalPrice();

(2)有参数的自定义函数

搜索更多关于: 《数据库系统原理》实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验项目名称:数据库设计实验 实验学时: 4 同组学生姓名: 孟陈、陈晓雪、季佰军 实验地点: 1318 实验日期: 6.23 实验成绩: 批改教师: 批改时间: 一、实验目的和要求 1.掌握数据库PL/SQL编程语言,以及数据库存储过程的设计和使用方法; 2.掌握数据库PL/SQL编程语言以及数据库自定义函数的设计和使用方法; 3.掌握PL/SQL游标的设计、定义和使用方法,理解PL/SQL游标按行操作和SQL按结 果集操作的区别和联系。 <

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com