一 实验题目:存储过程
二 实验目的:熟悉存储过程的定义和使用,熟练运用 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 写出存储过程的定义、测试数据、执行结果。
3 遇到的问题及解决方法
六 注意事项:
1 定义存储过程后,数据库中数据对象的变化,及其调试过程出错,如何修改存储过程。