数据库应用技术 第5章 T-SQL程序设计-1.ppt_第1页
数据库应用技术 第5章 T-SQL程序设计-1.ppt_第2页
数据库应用技术 第5章 T-SQL程序设计-1.ppt_第3页
数据库应用技术 第5章 T-SQL程序设计-1.ppt_第4页
数据库应用技术 第5章 T-SQL程序设计-1.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库应用程序技术、存储过程触发器事务处理和锁定、第5章T-SQL编程、数据库应用程序技术、5.1存储过程和5.1.1存储过程的概念集一起编辑,存储在服务器上并执行特定功能的预编译SQL语句。预存过程是在服务器上运行的程序,它处理服务器端数据库记录,然后将结果返回到客户机。5.1.2存储过程的优点是加快查询执行。这是因为在第一次执行预存程序之后,会快取执行计划。在以后的操作中,只需从缓存中调用编译的存储过程的二进制代码。对于需要大量T-SQL语句来完成数据库应用技术、5.1存储过程和减少网络数据流量操作的任务,您只需在网络之间发送单个命令,从而消除了逐个发送指令所需的网络流量。另一方面,如果不

2、将大量数据从服务器下载到客户端,而是减少网络上的吞吐量,则服务器只需将计算结果传递给客户端即可。这有助于提高客户端的工作效率。如果用户被授予执行存储过程的权限,则无论在存储过程操作(如修改表)过程中是否向用户授予了相关权限,都将提供不受限制地执行的安全机制。数据库应用技术,5.1存储过程,使程序模块化设计客户端不必知道复杂的数据结构或业务逻辑进程,只需通过存储过程将查询指令发送到服务器即可将需要服务器的数据返回给用户。因此,可以将大量业务逻辑封装到存储过程中,如果数据结构发生变化,则只需更改构成配置过程的算法。允许独立于程序源代码修改存储过程,从而提高程序的可重用性。数据库应用技术,5.1存储

3、过程,5.1.3存储过程的分类系统存储过程。存储在主数据库中。分为常规系统存储进程(sp_前缀)和扩展存储进程(xp_前缀)。用户存储过程。5.1.4创建存储过程CREATEPROCEDURE存储过程名as.没有5.1.4.1参数的存储过程(例如,在数据库的student、student_course和course表中查询,以返回学生学号、名字、课程编号、成绩和学分)。数据库应用程序技术、5.1存储过程、createprocedurestudent _ infoasseleta . SnO、sname、cno、s grade、Creditfromstudennerjoinstudent 具有5

4、.1.4.3默认值参数的存储过程(例如,在3个表连接中返回学生的学号、名字、选定课程的名称和该课程的成绩),如果未提供参数,则返回默认值create procedurest _ info name varchar(30)= Liu % createproceduretotalcredit name varchar(40), totalintutputasselect total=sum(credit)from student在进行了影响数据库统计信息的修改(如对数据库表编制索引)后,编译后的存储过程可能会效率低下。此时,必须重新编译存储过程以重新优化查询。使用系统存储过程sp_recompil

5、e重新编译存储过程。EXECsp_recompilecompany重新编译基于表公司的存储过程。在保存过程中创建的临时表。只能用于该存储过程,存储过程执行完毕后将自动删除。数据库应用程序技术,5.1存储过程,5.1.6调用存储过程使用exec stored _ procedure _ name parameters 5 . 1 . 6 . 1输入参数根据定义的声明顺序分配值,例如1,exec student _ in或者,在省略参数的地方使用DEFAULT替换DEFAULT调用。数据库应用程序技术,参数名称,例如exec student _ info 1 name= zhangiii , cn

6、ame= university physical 5 . 1 . 1此返回值通常用于记录存储过程执行过程中的状态,例如是否出错。例如:declare status intexec status=getinfo-getinfo是存储过程ifstatus0print“存储过程getinfo执行错误!”、数据库应用程序技术、变量定义和流程控制、变量定义和使用SQLSrever有两种类型的变量:局部变量和全局变量的区别在于范围不同。局部变量是用户定义的变量,它特定于定义该变量的放置语句或过程。程序通常将临时数据或存储过程返回的值存储为本地变量。全局变量是SQLServer系统提供并负责维护的一些变量。

7、用于存储SQLServer系统的某些参数值和性能统计信息。全局变量可用于所有程序。用户通常不能随机创建全局变量。1、必须先声明局部变量,然后才能使用一个局部变量。数据库应用技术,declare variable _ name datatype , variable _ name datatype.注:示例1DECLEARMyCounterINT示例2 declear last _ name varchar (30)、 fname varchar (20)、 state要为变量赋值,请使用SET语句或SELECT语句。SET语句分配的语法格式:SET变量名=表达式,数据库应用技术,示例3:是SE

8、T语句的示例,它将两个变量声明到语句,分配值,然后将这些变量应用于SELECT语句的WHERE子句。usenorthwingodeclare firstnamevariablevarchar(20), regionvaribablevarchar(30)set first name variable第二种类型/*。*/,注释多行2,begin.END用户为begin.您可以使用end封装多个SQL语句以配置单独的执行单元。语法格式:BEGINSQL语句或语句块end,5: usepubsgocreatetrigger deltitleontitlesfordeletesif(select co

9、unt(*)from deleted,)end,数据库应用程序技术,3,IF.IFELSE语法格式:IF条件SQL语句或语句块ELSESQL语句或语句块,数据库应用程序技术,示例6:6:use pubsif(SELECTAVG(price(price)fromtitleswheels,数据库应用程序技术,If.end语句的嵌套示例:USEpubsIF(SELECTAVG(price)Fromtitleswheretype= mod _ cook )$ 15 begin print thefollows.IF . ELSE语句也可以实现,但是使用CASE语句可以使程序的结构更加优美。语法格式:case input _ expression when _ expression onthen result _ expression.n else _ result _ expression,数据库应用程序技术。其中input _ expression是条件判断表达式。When_expression用于与input_expression比较,当input_expression的值相同时,执行此分支中的result_expression语句。当没有when_exp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论