SQL SERVER中的流程控制语句
流程控制语句
是指用来控制程序运行和流程分至点额命令。一般指的是逻辑计算部分的控制。
1.Begin End语句
封装了多个T-SQL语句组合,将他们组成一个单元来处理。
一般在条件查询或者循环等控制流程语句中,要查询满足特定条件的操作时会用到。Begin……end能够嵌套使用。
语法例如以下:
begin --<sql语句或程序块> end
样例
begin --<sql语句或程序块> select * from StudentInfo update StudentInfo set money =50 end
2.推断语句
当满足某种特定条件的时候才运行的语句,通常就是我们所说的 If……else语句。通过做出推断。选择运行某条语句或语句块
语法例如以下:
if<条件表达式> --<sql语句或程序块> else<条件表达式> -- <sql语句或程序块>
样例
--declare 是声明的意思 declare @money int select @money=money from StudentInfo where stuid ='01' if @money >20 print '钱太多了' else print '钱太少了'
当中<条件表达式>能够是各种表达式的组合。可是必须是true或者false。Else是可选的,最简单的if语句没有else部分
3.检測语句
If……exists语句时用来检測数据是否存在,当然了我们也能够通过检測匹配行count(*)来实现,可是没有if……exists效果好。由于假设仅仅要找到第一条匹配的数据的话。server就会停止检測
语法规则
if [not]exists (select 查询语句) <命令行或语句块> else <条件表达式> <命令行或语句块>
样例
--检查学号为01的学生是否存在 if exists (select * from StudentInfo where stuid='01') print '这个学生存在' else print '这个学生不存在'
4.多分支推断语句
Case……when结构提供比if……else结构很多其它的选择和推断机会。假设学习过编程语言的同学来说。我们应该见过这样的结构的语句。使用它能够非常方便的实现多分支推断,从而避免if……else的语句嵌套使用。
语法规则有两种
规则一
case<算术表达式> when<算术表达式>then<运算符> when<算术表达式>then<运算符> [else<算术表达式>] end
规则二
case when<算术表达式>then<运算符> when<算术表达式>then<运算符> [else<算术表达式>] end
样例
--选择某一条件 select money= case --对该条件进行选择分支推断 when(money<20) then '太少了' when(money>20) then '太多了' else '还行吧' end from StudentInfo
5.循环语句
能够反复运行sql语句或者要运行的语句块。仅仅要指定的条件成马上可
Break命令让程序全然跳出循环语句,结束while命令。continue是让命令继续返回运行
语法规则
while <条件表达式> begin <sql语句或者程序块> break continue <sql语句或者程序块> end
样例
--计算1+2+3……100的和 declare @i int,@small int select @i=1,@small=0 while @i<=100 --推断的条件 begin set @small =@small +@i set @i=@i+1 continue end print '1+2+3……100的和是' print @small
6.跳转语句
使用goto语句能够改变程序的流程,让程序自己主动跳到我们要运行的程序行
语法规则:
Goto标识符:
样例
--计算1+2+3……100的和 declare @i int,@small int select @i=1,@small=0 while @i<=100 --推断的条件 begin set @small =@small +@i set @i=@i+1 goto wode continue end print '1+2+3……100的和是' print @small wode: print '我跳出来了'
小结:
这些语句时我们在学习SQL SERVER中会常常遇到的,事实上也不难,与我们寻常学习的编程语言中的控制结构同样,仅仅只是是格式可能的略作改动。仅仅要尝试下,找几个样例练一下就可以。