第九章存储过程的创建与使用.ppt
文本预览下载声明
《数据库基础与应用》第9章存储过程的创建和使用 ;自定义函数的创建与使用?;存储过程与自定义函数的区别?;本章主要内容 ;本章核心知识点;本章重点难点;本章教学目标;第9章 存储过程的创建和使用 ;9.1 概述 ;9.1.1 理解存储过程的概念 ;。;9.1.2 理解存储过程的优点 ;3.减少网络流量
特别对于复杂的商业业务计算,例如计算用户的每月应交电费,如采用T-SQL实现,则需要大量的T-SQL语句和中间数据在客户机与SQL SERVER服务器之间的网络通道上传送;采用存储过程实现,则只需由一条执行存储过程的单独语句就可实现,大大减少网络流量。
4.提高系统安全性
可作为安全机制使用。通过适当的权限设置,可以使系统的安全性得到有效保障。
5.允许模块化程序设计
存储过程可以封装企业的功能模块,这种企业的功能模块也为商业规则或者商业策赂,可以只创建一次并将其存储在数据库中,以后即可在程序中调用该过程任意次,而且可以统一修改。;9.1.3 掌握存储过程的分类 ;用户自定义存储过程可根据不同的标准予以分类:
(1)临时存储过程。是以存储过程名#、##开头的存储过程。存放在tempdb数据库中,当用户断开连接时将自动删除临时存储过程。
(2)本地存储过程。用户创建并存放在用户当前连接的SQL SERVER数据库中的存储过程, 是我们通常意义上的存储过程。
(3)扩展存储过程。是利用高级语言(如DELPHI和C++等)编写的存储过程。实际是包含在一个WIn32.DLL中的一个函数。只有那些可以独立创建DLL和EXE文件的高级程序语言可用来创建扩展存储过程。 ;9.2 创建存储过程 ;9.2.1 利用企业管理器创建存储过程 ;(1)启动SQL SERVER企业管理器,依次单击控制台树上的【服务器组】→【服务器】→【数据库】→【要创建存储过程的数据库】→右击【存储过程】,在弹出的快捷菜单中单击【新建存储过程】,如图所示。;(2)弹出存储过程属性对话框,如图所示。;(3)在“文本”框中输入存储过程。包括修改存储过程名, 并在”AS”后输入存储过程内容。
(4)单击【检查语法】按钮,检查所输入的SQL语句语法的是否正确。
(5)单击【确定】按钮,创建该存储过程。;9.2.2 使用Transact-SQL语言创建存储过程;1.创建带有复杂 SELECT 语句的简单过程
【例9-1】创建存储过程,返回所有帖子信息。这些帖子信息要求显示编号的意义。如:发帖人不使用用户编号,而使用发帖人的昵称;帖子所在版块不使用版块编号,而显示版块名。
【分析】:
(1)使用CREATE PROCEDURE语句创建存储过程,该存储过程无输入参数、输出参数。
(2)帖子信息存放于TOPIC表,发帖人信息存放于USERS表,版块信息存放于SECTION表, 三张表作联接查询。;代码如下:
USE bbsdb
GO
CREATE PROCEDURE p_topic_all
AS
SELECT TID, TSID, Users.UName, TReplyCount, TEmotin, TTopic,
TContents, TTime, TClickCount, TFlag, TlastClickT, SECTION.SNAME
FROM Topic , Users ,SECTION
Where Topic.TUID = Users.UID and Topic.TSID = SECTION.SID
GO;执行上述T-SQL便可创建存储过程,创建成功的存储过程可由SQL的EXECUTE调用,也可由前端开发语言(DELPHI, C#, JAVA等)通过数据库接口(如OLD DB)的方法调用。
p_topic_all存储过程可以通过以下方法执行:
USE bbsdb
GO
EXECUTE p_topic_all
-- 或
EXEC p_topic_all
GO
;练习:;2.创建带有参数的简单存储过程
【例9-2】创建存储过程,除【例9-1】的要求(不显示代码,需要显示代码意义)外, 还要求只返回指定某版块编号的帖子信息。
【分析】:
(1)创建存储过程,该存储过程有输入参数“版块编号”,无输出参数。
(2)帖子信息存放于TOPIC表,发帖人信息存放于USERS表,版块信息存放于SECTION表, 三张表作联接查询,增加条件过滤。 ;代码如下:
USE bbsdb
GO
CREATE PROCEDURE p_topic_by_sid
@SID INT
?AS
SELECT TID, TSID, Users.UName, TReplyCount, TEmotion,
显示全部