《T-SQL流程控制语句.ppt》由会员分享,可在线阅读,更多相关《T-SQL流程控制语句.ppt(20页珍藏版)》请在金锄头文库上搜索。
1、SQL Server 2005SQL Server 2005第8章 T-SQL语言 流程控制语句主讲人:段利文第第2424讲讲2第8章 T-SQL语言流程控制语句第24讲复习:使用批处理、脚本、注释使用批处理、脚本、注释标识符标识符常量常量uu书写格式取决于它所表示的值的数据类型。书写格式取决于它所表示的值的数据类型。变量变量uu局部变量:用户自己定义的变量;局部变量:用户自己定义的变量;以以符号开头;符号开头;先声先声明后使用明后使用uu全局变量:系统定义的变量;全局变量:系统定义的变量;以以 符号开头;符号开头;用户不用户不能修改其值。能修改其值。T-SQLT-SQL系统内置函数系统内置函
2、数T-SQLT-SQL的运算符的运算符3第8章 T-SQL语言流程控制语句第24讲第8章 T-SQL语言流程控制语句教学内容基础知识:uu流程控制语句概述流程控制语句概述uubeginendbeginend语句语句uuifelseifelse、if existsif exists语句语句uuwhilewhile、breakbreak和和continuecontinue语句语句uuwaitfor语句uureturn 语句4第8章 T-SQL语言流程控制语句第24讲第8章 T-SQL语言流程控制语句学习目标认知目标:uu了了解解T-SQLT-SQL语语言言语语句句块块、条条件件语语句句、循循环环语
3、语句的基本格式句的基本格式能力目标:uu能能运运用用各各种种流流程程控控制制语语句句正正确确编编写写SQLSQL程程序序( (重点、难点重点、难点) )5第8章 T-SQL语言流程控制语句第24讲一、流程控制语句概述T-SQLT-SQL语言与其它高级语言一样,提供了可以控制语言与其它高级语言一样,提供了可以控制程序执行流程的语句。使用这些流程控制语句可以程序执行流程的语句。使用这些流程控制语句可以更好地组织和控制程序的流程。更好地组织和控制程序的流程。类型类型uu语句块:语句块:beginbeginendenduu条件语句:条件语句:if ifelseelse、if existsif exis
4、tsuu循环语句:循环语句:whilewhile、breakbreak、continuecontinueuu等待语句:等待语句:waitforwaitforuu返回语句:返回语句:returnreturnuu转移语句:转移语句:gotogoto(了解)(了解)6第8章 T-SQL语言流程控制语句第24讲二、beginend语句语句格式:ubegin 语句语句 | | 语句块语句块 end作用uu可以将多条可以将多条T-SQLT-SQL语句封装起来,构成一个独语句封装起来,构成一个独立的语句块。立的语句块。uuBeginBegin和和endend必须成对出现。必须成对出现。语句块的开始语句块的结
5、束7第8章 T-SQL语言流程控制语句第24讲三、 ifelse、if exists语句语法格式:语法格式:uif 逻辑表达式逻辑表达式 语句语句 | | 语句块语句块 else 语句语句 | | 语句块语句块 作用:作用:uu按条件控制程序的执行。按条件控制程序的执行。uu当条件满足时,则在执行条件之后的当条件满足时,则在执行条件之后的T-SQL T-SQL 语句。否则,语句。否则,就执行就执行elseelse后的后的T-SQLT-SQL语句(若语句(若ELSEELSE部分存在)。部分存在)。uif not exists(select语句) 语句语句 | | 语句块语句块 else 语句语句
6、 | | 语句块语句块 8第8章 T-SQL语言流程控制语句第24讲三、 ifelse语句实例1:查询学号为“020101”的平均分是否超过了85分,若超过,则输出“XX考出了高分”的信息;否则输出“考的一般”。uuse xscjxscjudeclare xmxm varchar(10)(10)uif ( (select avg( (成绩成绩) ) from xs_kcxs_kc where 学号学号= = 020101 ) 85) 85 begin select xmxm= = 姓名姓名 from xsqkxsqk where 学号学号= = 020101 print xmxm + + 考出
7、了高分 end else print 考的一般从学生情况表中取姓名求指定学号的平均成绩9第8章 T-SQL语言流程控制语句第24讲三、 ifelse语句课堂练习1:测试xscj库的xsqk表中是否有“田丽”这个人,若有则显示其信息,若无则显示“没有XX这个人!”。uuse xscjxscjudeclare xmxm varchar(20)(20)uselect xmxm = = 田丽uif exists ( (select * * from xsqkxsqk where 姓姓名名=xmxm ) ) select * * from xsqkxsqk where 姓名姓名=xmxm else pr
8、int 没有“ + xm + ”这个人!测试“学生情况表”中是否有这个人10第8章 T-SQL语言流程控制语句第24讲四、while、break和continue语句语法格式:uwhile 逻辑表达式逻辑表达式 语句语句 | | 语句组语句组 break 语句语句 | | 语句组语句组 continue 说明:uuBreakBreak用于退出最内层的用于退出最内层的whilewhile循环。循环。uuContinueContinue用于重新开始一次用于重新开始一次whilewhile循环。循环。11第8章 T-SQL语言流程控制语句第24讲四、while、break和continue语句实例2
9、:计算1到100中奇数的和,要求显示为“奇数和为:XX”。udeclare i i int, sum , sum intuselect i = 1, sum = 0 i = 1, sum = 0uwhile i 100 i 100 begin set sum = sum = sumsum + i + i set i = i = ii +2 +2 enduprint 奇数和为:+ + cast(i(i as varchar(5)(5)12第8章 T-SQL语言流程控制语句第24讲四、while、break和continue语句课堂练习2:计算500以内能被3或7整除的数。udeclare i intuselect i = 1uwhile i 2121if n=0 print 年龄大于21的学生人数有: + + cast( n ( n as varchar(5) )(5) )else print 没有年龄大于21的学生