实验09 存储过程

实验目的

存储过程是用SQL语言所编写的程序集合,类似于程序设计语言中的函数或过程。本实验要求掌握系统存储过程以及用户自定义存储过程的创建、修改、删除和调用的方法。

实验要求

(1) 调用执行系统存储过程;
(2) 创建自定义存储过程的方法;
(3) 执行自定义存储过程的方法;
(4) 修改和删除自定义存储过程的方法。

实验内容

创建并执行存储过程ProcViewCustomer:查看“客户”表中的信息。

create procedure "ProcViewCustomer" as
begin
select * from  客户表;
end;
call "ProcViewCustomer"();

创建并执行一个名称为CountProc的存储过程,用来获取客户表记录个数。

create procedure "CountProc"
AUTHID DEFINER
as
begin
select count(*) as 客户记录个数 from 客户表;
end;
call "CountProc"();

创建并执行存储过程ProcQcustomer:通过客户的客户编号来查询客户的姓名,性别,电话,地址,默认客户编号为“990124”。

create procedure "ProcQcustomer" (num  varchar default '990124') 
AS	
BEGIN
select 姓名,性别,电话,地址 from 客户表 where 客户编号=num;
END;
call "ProcQcustomer"();

执行存储过程ProcQcustomer:当输入客户编号为“990546”时,显示该客户的姓名,性别,电话,地址。

call "ProcQcustomer"(num='990546');

创建并执行存储过程ProcQproduct:查询有“计算机”的店名,负责人,客服电话。

create procedure "ProcQproduct" ()
AS	
BEGIN
select 商店名称,负责人,客服电话 from 卖家表,商品表 
where 卖家表.商店编号=商品表.店铺编号 and 商品名称 like '计算机';
end;
call "ProcQproduct"()

创建并执行存储过程ProcSinProduct:当输入任意一个存在的商品名称时,查询该商品的销售数量。

create  procedure "ProcSinProduct" (name  varchar) 
as
begin
select SUM(数量) as 销售数量 from 商品表,购买记录表
where 商品表.商品编号=购买记录表.商品编号 and 商品表.商品名称=name;
end;
call "ProcSinProduct"(name='打印机')

创建并执行存储过程ProcAdd;在商店表中循环插入三条测试数据。

51001 测试1 负责人1 客服电话1 地址1
51002 测试2 负责人2 客服电话2 地址2
51003 测试3 负责人3 客服电话3 地址3

create procedure "ProcAdd" (i in int) 
as j int;
begin
for j in 1 ..i loop
insert into 卖家表 values('5100'||j,'测试'||j	,'负责人'||j	,'客服电话'||j,'地址'||j);
end loop;
end;

call "ProcAdd"(3)
select * from  "卖家表"

将第(6)题中所定义的存储过程修改成根据输入的商品编号,查询该商品的销售数量

create or replace  procedure "ProcSinProduct" (num  varchar) 
as
begin
select SUM(数量) as 销售数量 from 商品表,购买记录表
where 商品表.商品编号=购买记录表.商品编号 and 商品表.商品编号=num;
end;
call "ProcSinProduct"(num='81887676')

删除存储过程ProcQcust。

drop procedure "ProcAdd";

总结与思考

使用存储过程能为我们带来哪些便利?

重复性地工作将常用sql写好存储起来,下次遇到同样的问题直接使用存储过程即可,不需重写一遍sql,提供效率

DM8将存储过程分为哪几类?各有哪些特点?

存储过程分为三类:
系统存储过程:(System stored Procedure)sp_开头,为SQLSERVER内置存储过程。
扩展存储过程:(Extended stored Procedure),也就是外挂程序,用于扩展SQLSERVER的功能,以sp_或者xp_开头,以DLL的形式单独存在。
用户定义的存储过程:(User-defined stored Procedure),这个就是用户在具体的数据库中自己定义的,名字最好不要以sp_和xp_开头,防止混乱。
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值