- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库编程讲述
数据应用设计实验报告
实验名称:_______
实验类型:_________验证型实验_________
实验环境:________________
指导教师:_______________________
专业班级:_____________________
姓 名:________________________
学 号:____________________
联系电话:_________________
电子邮件:_____________
实验地点:_____________________
实 验 日 期:?? 年? 月 日
实验报告日期:??? 年?? 月? 日
成绩:__________________________
一、实验目的
掌握触发器的创建和使用
了解存储过程的概念、优点
掌握创建存储过程的方法和步骤
掌握存储过程的使用方法
二、实验
建立存储过程
调用存储过程
四、实验zjs”数据库中建立教师表,要求定义教工号为主码,职称默认值为“讲师”,每个教师的实发工资不低于2000元。在查询分析器中输入如下SQL语句:
如下表所示向教师表中插入教师记录:
教工号 教师姓名 性别 院系编号 0001 李红 女 01 0002 王勇 男 02 创建一个触发器reminder,当有人试图在Teacher表中添加或更改数据时,向客户端显示一条消息:您在Teacher表中成功地添加或修改了一条记录。
向教师表中插入一条记录,激活触发器。教工号:2166,教师姓名:张乐乐,性别:女,院系编号:03
在学生表上建立一个触发器,假定一条学生记录从学生表删除了,那么该触发器使得选课表中该生的选课记录也被删除,从而获得数据的完整性。
在查询分析器中输入下面的语句,激活触发器。
定义一个触发器使得教授应发工资不得低于4000元,如果低于4000元,自动改为4000元。
在查询分析器中输入下面的语句,激活触发器,注意观察结果。
请定义一个触发器Insert_Sal,当教师表Teacher的工资发生变化后就自动在变化表Sal_log中增加一条相应记录。
写出激活触发器Insert_Sal的SQL语句。
建立一个存储过程:从zjs数据库的三个表中查询,返回学生的学号、姓名、课程名、成绩、学分,然后调用该存储过程(提示:该存储过程不使用任何参数)。
建立一个存储过程:从zjs数据库的表中查询某人指定课程的成绩和学分,然后调用该存储过程。(提示:该存储过程带参数)
建立一个存储过程:从zjs数据库的表中查询指定学生的学号、姓名、所选课程的名称和成绩(该存储过程在参数中要求使用模式匹配,如果没提供参数,则使用预设的默认值,姓张的学生“张%”),然后调用该存储过程。
建立一个存储过程,用于计算指定学生的总学分,存储过程中要求使用一个输入参数和一个输出参数(使用带OUTPUT参数的存储过程),然后调用该存储过程(注意OUTPUT 变量必须在创建表和使用该变量时都进行定义。)。
15.创建一个添加学生记录的存储过程proc_STUDENTAdd,然后调用该存储过程。
部分题目代码及结果:
5、在学生表上建立一个触发器,假定一条学生记录从学生表删除了,那么该触发器使得选课表中该生的选课记录也被删除,从而获得数据的完整性。
create trigger stusc
on 学生表
instead of delete
as
begin
declare @id varchar(20);
select @id=学号 from deleted;
delete from 选课表 where 学号=@id;
delete from 学生表 where 学号=@id;
print (删除成功)
end
delete
from 学生表
where 学号=200515121
结果:
请定义一个触发器Insert_Sal,当教师表Teacher的工资发生变化后就自动在变化表Sal_log中增加一条相应记录。
先建改动表:
create table 改动
(
教工号 char(4) references 教师(教工号),
应发工资 numeric(7,2),
修改用户 varchar(50),
时间 DATETIME
);
创建触发器:
create trigger Insert_Sal on 教师
for insert,update
as
begin
declare @id char(4),@money numeric(7,2);
select @id=教工号,@money=应发工资 from inserted;
insert into 改动
values(@i
文档评论(0)