实验题目:存储过程

实验题目:存储过程

实验目的:熟悉存储过程的定义和使用,熟练运用 select  ,update ,insert ,delete 命令完成对学生信息数据库的查询、更新、添加、删除操作。

实验内容及要求(从下面10个题目中选一个)

题目一:

学生(学号,年龄,性别,系名)

课程(课号,课名,学分,学时)

选课(学号,课号,成绩)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:学号

1 显示学生的选课信息

2 如果学生没选课,让他选1号课,插入一条选课记录,成绩为0

3 如果学生所有课都不及格,删掉该学生记录

题目二:

图书(书号,书名,价格,出版社)

读者(卡号,姓名,年龄,所属单位)

借阅(书号,卡号,借阅日期)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:书号

1 显示图书借阅信息

2 如果没人借,删除该书记录

3 如果价格5元以下,涨价至5元。

题目三:

商品(编号,品名,进价,库存,售价,厂商编号)

顾客(卡号,姓名,电话,积分)

厂商(编号,厂址,名称、电话)

销售(顾客卡号,商品编号,数量,日期)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:商品编号

1 显示商品信息

2 如果没人买,删除该商品记录

3 如果价格低于10元,涨价至10元。

题目四:

图书(书号,书名,作者编号,价格,出版社编号)

作者(编号,姓名,电话)

出版社(编号,出版社名称,地址)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:出版社编号

1 显示出版社信息

2 如果没书出版,删除该记录

3 如果该出版社的图书平均价格低于20元,所有书涨价10%。

题目五:

零件(编号,名称,颜色)

车间(编号,名称,人数,主任)

产品(编号,名称,车间编号)

使用(产品编号,使用零件编号,个数)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:零件编号

1 显示零件信息

2 如果没有产品用,删除该零件记录

3 如果颜色为红色,改为粉红。

题目六:

药品(编号,名称,价格,厂商)

处方(药品编号,数量,医生编号)

医生 (编号,姓名,科室,职称)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:药品编号

1 显示药品信息

2 如果没有处方开此药,删除该药品记录

3 如果价格高于10元,降价至10元。

题目七:

学生(学号,年龄,性别,系名)

教材(编号,书名,出版社编号,价格)

订购(学号,书号,数量)

出版社(编号,名称,地址)
根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:教材编号

1 显示教材信息

2 如果没人买,删除该教材记录

3 如果价格低于10元,涨价至10元。

题目八:

员工(编号,姓名,性别,年龄,部门编号,年薪)

部门(编号,名称,人数,负责人)

项目(编号,名称,负责部门编号)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:员工编号

1 显示员工信息

2 如果没有参加项目,调入1号项目所属部门

3 如果年薪低于1万元,涨价至1万元。

use 雇员信息数据库
go
create procedure ManageMedical @id int
as
if @id not in(select 员工编号 from 员工)
begin
print('没有该员工')
return 
end

select * 
from  员工 
where 员工编号 = @id

declare @count int
select @count = COUNT(*) from 员工 where 员工编号 = @id

if(@count = 0)  
update 员工
set 部门编号 = 01
from 员工
where 员工编号= @id;

else
begin
    declare @price money
    select @price = 年薪
    from 员工 
    where 员工编号 = @id
    
    if (@price <10000) 
    update 员工 
    set 年薪 = 10000 
    where 员工编号 = @id
end
go

题目九:

帐户(编号,姓名,余额,建立日期,储蓄所编号)

储蓄所(编号,名称,地址,人数,所属城市)

借贷(帐户,借贷类型,金额,日期)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:储蓄所编号

1 显示储蓄所信息

2 如果没有帐户,删除该储蓄所记录

3 如果帐户余额总额低于100万元,开一个新帐户,。

题目十:

仓库(编号,保管员编号,面积)

保管员(编号,姓名,年龄,电话、月薪)

商品(编号,品名,仓库编号、数量,单价)

根据上面基本表的信息定义一个存储过程,完成下面功能:

入口参数:仓库编号

1 显示仓库信息

2 如果没有商品存放,删除该记录

3 如果面积低于100平米,设为100。

实验指导

1  变量的申请和使用

 例: Declare @var1   int  ,@ var2   money

         Select   @var1=100 ,@ var2=$29.95

           Select   @var1 ,@ var2

2  定义存储过程

   例1:create procedure check-contact  @pare  varchar(40)

       As

              If ( select contact from authors where au-lname =@pare)

              Return 1

              Else

Return  -100

实验报告要求:

1 定义存储过程的步骤

2 写出存储过程的定义、测试数据、执行结果。

遇到的问题及解决方法

注意事项:

1 定义存储过程后,数据库中数据对象的变化,及其调试过程出错,如何修改存储过程。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值