学习资料
第9课 为学生信息管理系统创建存储过程 1.什么是存储过程?使用存储过程有哪些特点? 答:
存储过程是一种数据库对象,通常是把实现某个特定任务的一组预编译的SQL语句创建一个存储过程,以一个存储单元的形式存储在服务器上,供用户反复调用,提高程序的使用效率。 使用存储过程的优点:允许模块化程序设计;允许更快执行;减少网络流量;可作为安全机制使用。
2.试说明存储过程分类的特点。 答:
1)系统存储过程。存储在master数据库中,并以sp_为前缀,许多管理和信息活动可以通过系统存储过程执行。
2)本地存储过程。是用户自行创建的并存储在用户数据库中的存储过程。这类存储过程能根据用户的实际需要完成某以特定的功能。
3)临时存储过程。临时存储过程分为本地临时存储过程和全局临时存储过程。在创建存储过程时。如果过程名的第一个字符取“﹟”,那么创建的就是本地临时存储过程;如果过程名的第一.第二字符都取“﹟”,那么创建的就是全局临时存储过程。临时存储过程存储在tempbd内,它们在连接到SQL Server 以前的版本时很有用。
4)远程存储过程。指非本地服务器上的存储过程,只有在分布式查询中使用此存储过程。 5)扩展存储过程。扩展存储过程是用户使用外部程序语言编写的存储过程。使用时需要先加载到SQL Server系统中,且只能存储在master数据库中,其执行与一般的存储过程完全相同。引入扩展存储过程主要是弥补SQL Server的不足之处,可以按需要大幅扩展其功能。 3.请分别写出用企业管理器和T_SQL语句命令创建存储过程的主要步骤。 答:使用企业管理器
1. 运行企业管理器,展开数据库STUMS,在“存储过程”图标上右击,在弹出的快捷
菜单中选择“新建存储过程”命令。 2. 在该窗口中首先输入所有者和存储过程名。
3. 输入实现存储过程功能的语句,单击“检查语法”按钮,进行语法检查。 4. 如果没有任何错误,单击“确定”按钮,将存储过程保存到STUMS数据库中。 5. 双击STUMS数据库中的“存储过程”,用户在右窗格显示的存储过程列表中,就可
看到刚创建的存储过程。
使用T_SQL语句: 1)在查询分析器中输入: CREATE PROC procedure_nam AS sql_statement[…n]
其中,procedure_nam是要创建的存储过程,过程名称必须符合标识符规则,且对于数据库及其所有者必须惟一。sql_statement:是定义存储过程所要完全操作的任意数目和类型的T-SQL语句。 仅供学习与参考
学习资料
2)进行语法检查,正确无误后,单击执行按钮即可。
4.创建存储过程哪一个选项将加密语句文本?哪一个选项可设置输入参数? 答:创建存储过程的WITH ENCRYPTION选项将加密语句文本。 @ parameter_name date_type[=default] 选项可设置输入参数。 5.执行含有参数的存储过程应注意什么? 答:
当存储过程含有多个输入参数时,传递值的顺序必须与存储过程中定义的输入参数的顺序相一致。
使用带有通配符参数的存储过程,可以实现模糊查询。
6.查看存储过程的定义信息,应使用哪一个系统存储过程?查看存储过程的相关性信息,应使用哪一个系统存储过程应注意什么? 答:
可使用sp_helptext可查看存储过程的定义信息;使用sp_depends可查看存储过程的相关性。
7.可用什么语句修改存储过程?可用什么语句删除存储过程? 答:
修改存储过程可以使用ALTER PROCEDURE语句;使用DROP PROCEDURE 语句删除存储过程。 8.在SQL 查询分析器的对象浏览器窗口中可以修改存储过程吗?举例说明操作过程。 答:
在SQL 查询分析器的对象浏览器窗口中可以修改存储过程。
1)打开SQL查询分析器,展开数据库STUMS,展开“存储过程”项目;
2)右击需修改的存储过程如xs_cj-proc,在弹出的快捷菜单中选择“编辑”子菜单,打开编辑器窗口;
3)窗口中呈现ALTER PROCEDURE 命令和待修改的粗出过程源代码,用户可对其进行修改; 1.修改完毕后,单击菜单“查询→执行”完成修改。 9.写出T-SQL语句,对STUMS数据库进行如下操作:
2.创建一个名为xs_bk_proc的存储过程,完成不及格学生的学号、姓名、课程名,成绩和班号信息的查询。
答:CREATE PROC xs_bk_proc AS
SELECT学生基本信息.学号,姓名,课程名,成绩, 班号 FROM 学生基本信息,选课,课程
WHERE学生基本信息.学号=选课.学号 AND选课.课程号=课程.课程号AND 成绩<60 3.在STUMS数据库中,基于班级表创建一个名为BJ_INFO_PROC的存储过程,根据班号查询班主任、班长和教室位置信息。
仅供学习与参考
学习资料
答:CREATE PROC BJ_INFO_PROC @ BH CHAR(6) AS
SELECT班主任,班长,教室 FROM 学生基本信息,选课,课程 WHERE班号=@BH
4.创建一个名为xs_tj_proc的存储过程,实现按性别统计学生数。 答:CREATE PROC xs_tj_proc @ XB CHAR(2) AS
SELECT COUNT(*) 学生数 FROM 学生基本信息 WHERE 性别=@XB GROUP BY 性别
5.调用上述xs_tj_proc存储过程,统计女生人数。 答:EXEC xs_tj_proc ‘女’
6.创建一个名为xk_ins_proc的存储过程,用于向选课表插入记录。 答:CREATE PROC xk_ins_proc @ XH CHAR(9), @ KCH CHAR(4), @ CJ smallint, @ BKCJ smallint, @ XF tinyint AS
INSERT 选课 VALUES(@ XH CHAR(9),@ KCH CHAR(4),@ CJ smallint,@ BKCJ smallint,@ XF tinyint)
7.创建一个名为xk_cj_proc的存储过程,根据课程号更新选课表中的对应成绩,令成绩等于0。
答:CREATE PROC xk_cj_proc @ KCH CHAR(4) AS
UPDATE 选课 仅供学习与参考