欢迎来到天天文库
浏览记录
ID:59017352
大小:144.00 KB
页数:51页
时间:2020-09-26
《第6章Transact-SQL简介、存储过程和触发器ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章Transact-SQL简介、存储过程和触发器6.1Transact-SQL简介6.2存储过程6.3触发器6.1Transact-SQL简介6.1.1批处理、脚本和注释6.1.2常量和变量6.1.3流程控制语句6.1.1批处理、脚本和注释批处理就是一个或多个Transact-SQL语句的集合,用户或应用程序一次将它发送给SQLServer,由SQLServer编译成一个执行单元,此单元称为执行计划,执行计划中的语句每次执行一条。批处理的结束标记是:GO。1批处理建立批处理如同编写SQL语句,区别在于它是多条语句同时执行的,用GO语句作为一个批处理的结束。2脚本
2、脚本是批处理的存在方式,将一个或多个批处理组织到一起就是一个脚本。脚本可以在查询分析器中执行,查询分析器是编辑、调试和使用脚本的最好环境。3注释1)单行注释:使用两个连在一起的减号“––”作为注释符语法格式为:––注释文本2)块注释:使用“/**/”作为注释符块注释的语法格式为:/*注释文本*/或:/*注释文本*/6.1.2常量和变量常量和变量是程序设计中不可缺少的元素。变量又分为局部变量和全局变量,局部变量是一个能够保存特定数据类型实例的对象,是程序中各种类型数据的临时存储单元,用在批处理内SQL语句之间传递数据。全局变量是系统给定的特殊变量。1常量Transac
3、t-SQL的常量主要有以下几种。字符串常量数值常量日期常量2全局变量全局变量是SQLServer系统提供并赋值的变量。用户不能定义全局变量,也不能用SET语句来修改全局变量。通常是将全局变量的值赋给局部变量,以便保存和处理。事实上,在SQLServer中,全局变量是一组特定的函数,它们的名称是以@@开头,而且不需要任何参数,在调用时无需在函数名后面加上一对圆括号,这些函数也称为无参数函数。3局部变量局部变量是用户在程序中定义的变量,一次只能保存一个值,它仅在定义的批处理范围内有效。局部变量可以临时存储数值。局部变量名总是以@符号开始,最长为128个字符。使用DECL
4、ARE语句声明局部变量,定义局部变量的名字、数据类型,有些还需要确定变量的长度。4变量的声明与赋值声明变量的语句格式:DECLARE@局部变量名数据类型注:不能把局部变量指定为text或image类型,使用DECLARE声明一个局部变量后,这个变量的值将被初始化为null。变量的赋值语句格式为:SET@局部变量名=值
5、表达式注:表达式可以是任意的SQLSERVER表达式。例:计算两个变量的值的和,然后输出其结果。DECLARE@xintDECLARE@yintDECLARE@zintSET@x=10SET@y=10SET@z=@x+@yPrint@z6.1.3流程控
6、制语句流程控制语句是组织较复杂Transact-SQL语句的语法元素,在批处理、存储过程、脚本和特定的检索中使用。它们包括条件控制语句、无条件转移语句和循环语句等。主要的流程控制语句:BEGIN…END:定义语句块IF…ELSE:若指定条件为真,执行一个分支,否则执行另一个分支WHILE:当指定条件为真时重复一些语句CASE:允许表达式按照条件返回不同的值BREAK:退出最内层的WHILE循环RETURN:重新开始WHILE循环WAITFOR:为语句的执行设置延迟1BEGIN…END语句块BEGIN和END用来定义语句块,必须成对出现。它将多个SQL语句括起来,相当
7、于一个单一语句,其语法格式如下。BEGIN语句1或语句块1语句2或语句块2…END2IF...ELSE语句IF…ELSE语句用来实现选择结构,其语法格式如下。IF布尔表达式{语句1或语句块1}[ELSE{语句2或语句块2}]3WHILE语句WHILE语句用来实现循环结构,其语法格式如下:WHILE逻辑表达式语句块当逻辑表达式为真时,执行循环体,直到逻辑表达式为假。BREAK语句退出WHILE循环,CONTINUE语句跳过语句块中的所有其他语句,开始下一次循环。例:若IF条件为真或为假时要执行的语句只有一条(默认时,一条语句就是一个语句块),则可以不使用BEGIN…E
8、ND。DECLARE@xint,@yint,@zintSET@x=40SET@y=30IF(@x>@y)SET@z=@x-@yELSESET@z=@y-@xSET@x=0PRINT@xPRINT@yPRINT@z执行结果为03010例:若希望条件为假时,在ELSE语句中执行其后续的两条语句,则必须使用BEGIN…END将这两条语句包括起来,使其成为一个语句块。DECLARE@xint,@yint,@zintSET@x=40SET@y=30IF(@x>@y)SET@z=@x-@yELSEBEGINSET@z=@y-@xSET@x=0ENDPRINT@xPRINT@
此文档下载收益归作者所有