文档详情

数据库SQL 10.doc

发布:2017-08-05约3.02千字共6页下载文档
文本预览下载声明
实验报告 课程 数据库原理与应用 实验名称 存储过程的使用 第 1 页 专业___软件工程___ 班级___1 ____ 学号_ __ 姓名 实验日期:2014 年 10 月 22 日 报告退发 (订正 、 重做) 一、实验目的 了解存储过程原理,练习创建和使用存储过程 二、实验内容 1、在数据库中有学生表,成绩表,课程表。创建一个存储过程getDetailByName,通过输入参数学生姓名(如“章山”),查询出该学生的基本信息,若不存在此学生,则输出“查无此人”。 2、(1) 在数据库中有tb_bookinfo表,tb_authorinfo表,tb_pubinfo表。建立一个名为pub_name的存储过程,该过程带有两个输入参数,用于接受输入的作者姓名和书的名称,还有一个输出参数,用于返回检索出的相应出版社名称。 (2) 存储过程建立成功后,使用李石林,SQL Server作为输入参数调用该存储过程,并查看输出参数的值。 3、(1) 在数据库中有emp表,dept表。创建一个名为“SalProc”的存储过程,用来计算emp表中某部门的最高工资。 该存储过程带有一个输入参数和一个输出参数。输入参数用来指定部门编号,输出参数用来存放该部门中所有员工的最高工资。 (2) 存储过程建立成功后,使用部门编号20作为输入参数调用该存储过程,并查看输出参数的值。 4、修改上题的SalProc存储过程,使其加密。然后使用sp_helptext 查看它的源代码。 5、删除pub_name存储过程。 6、假设有下面两个表: 职工(职工号,姓名,年龄,职务,工资,部门号) ,其中职工号为主码。 部门(部门号,名称,经理名,电话) ,其中部门号为主码。 用SQL语言定义这两个表,要求包含以下完整性约束: 定义每个关系模式的主码;定义参照完整性;定义职工年龄不得超过60岁。 三、实验环境 1、计算机一台 2、Microsoft SQL Server Management Srudio 四、实验步骤 1、在数据库中有学生表,成绩表,课程表。创建一个存储过程getDetailByName,通过输入参数学生姓名(如“章山”),查询出该学生的基本信息,若不存在此学生,则输出“查无此人”。 CREATE PROCEDURE getDetailByName @SDNAME varchar (20) as select 学生表.学号,学生表.姓名,学生表.性别, 课程表.课程,成绩表.成绩 FROM 学生表INNER JOIN 成绩表ON 学生表.学号=成绩表.学号INNER JOIN 课程表ON 课程表.课程号=成绩表.课程号 where 学生表.姓名=@SDNAME go CREATE PROCEDURE find @SDNAME varchar(20) AS IF EXISTS(SELECT * FROM 学生表WHERE 学生表.姓名=@SDNAME) RETURN 1 ELSE RETURN 0 GO execute getDetailByName雪山飞狐 declare @sfjsei int execute @sfjsei=find张三 if(@sfjsei=1) print 找到此人 else print查无此人 (2) 存储过程建立成功后,使用李石林,SQL Server作为输入参数调用该存储过程,并查看输出参数的值。 create procedure pub_name @writer char(10), @title char(30), @press char(30) output as select authname,bookname,pubname from tb_authorinfo inner join tb_bookinfo on tb_authorinfo.authorid=tb_bookinfo.authorid inner join tb_pubinfo on tb_bookinfo.publishid=tb_pubinfo.publishid where tb_authorinfo.authname=@writer AND tb_bookinfo.bookname=@title select @press=pubname from tb_pubinfo DECLARE @PRE CHAR(30) EXECUTE pub_name李石林,SQL Server,@PRE output 3、(1) 在数据库中有emp表,dept表。创建一个名为“SalProc”的存储
显示全部
相似文档