版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
流程控制语句课前预习将手机调到静音认真做笔记及时完成作业上课要求掌握常用流程控制语句的语法格式掌握常用流程控制语句的基本使用方法学习目标学习内容begin…end语句if…else语句case语句while语句goto语句return语句waitfor语句相关内容使用T-SQL语言编程的时候,常常要利用各种流程控制语句进行顺序、分支控制转移、循环等操作。T-SQL提供了一组流程控制语句,包括条件控制语句、无条件控制语句、循环语句和返回状态值给调用例程的语句。
BEGIN…END语句用来定义语句块,即将BEGIN…END内的所有T-SQL语句视为一个单元执行。在实际应用中,BEGIN和END必须成对出现。BEGIN…END语句的基本语法格式为:BEGIN{T-SQL语句或语句块}ENDBEGIN…END语句BEGIN…END语句一般与IF…ELSE,WHILE等语句联用,当判断条件符合需要执行的两个或多个语句时,就需要使用BEGIN…END语句将这些语句封装成一个语句块。IF…ELSE语句
IF…ELSE语句是条件判断语句,用于实现选择结构。
IF…ELSE语句的语法格式为:IF条件表达式{T-SQL语句或语句块}[ELSE{T-SQL语句或语句块}]当IF后的条件成立时执行其后的T-SQL语句。当条件不成立时,执行ELSE后的T-SQL语句,其中ELSE子句是可选项。
如果没有ELSE子句,当条件不成立则执行IF语句后面的其他语句。IF…ELSE语句允许嵌套使用,可以在IF之后或在ELSE下面,嵌套另一个IF语句,嵌套级数的限制取决于可用内存。IFIFELSEELSEIFELSEIFELSEIFIFELSEIFELSEIFELSE
IF【例】输出三个整数中的最大数。DECLARE@number1INT,@number2INT,@number3INT,@tempINTSET@number1=52SET@number2=38SET@number3=66IF@number1<@number2BEGINSET@temp=@number1SET@number1=@number2SET@number2=@tempENDIF@number1>@number3BEGINPRINT'最大数为:'PRINT@number1ENDELSEBEGINPRINT'最大数为:'PRINT@number3ENDCASE语句CASE语句用于实现选择结构,与IF…ELSE语句相比,它能更方便地实现多重选择的情况,从而避免多重的IF…ELSE语句的嵌套,使得程序的结构更加简练、清晰。
简单CASE语句CASE语句
搜索CASE语句简单CASE语句:语法格式为CASE表达式WHEN表达式
THEN结果表达式……[ELSE结果表达式]END执行过程:1、首先计算CASE后面的表达式,然后按指定顺序与每个WHEN子句后的表达式进行比较。2、如果相等,则执行对应的WHEN后的结果表达式,并退出CASE结构。3、若CASE后的表达式与所有WHEN后的表达式均不相等,则执行ELSE后的结果表达式。4、若CASE后的表达式值与所有WHEN后的表达式均不相等,且ELSE结果表达式被忽略,则返回NULL值。搜索CASE语句语法格式为CASEWHEN条件表达式
THEN结果表达式……ELSE结果表达式END执行过程:1、首先测试WHEN后的条件表达式,若为真,则执行THEN后的结果表达式,否则执行下一个WHEN后的条件表达式的测试。2、若所有WHEN后的条件表达式都为假,则执行ELSE后的结果表达式。3、若所有WHEN后的条件表达式都为假,且ELSE结果表达式被忽略,则返回NULL值。例:根据学生考试成绩输出等级declare@scoretinyintset@score=82print
casewhen@score>=90then'该学生考试成绩优秀'when@score>=80then'该学生考试成绩良好'when@score>=70then'该学生考试成绩一般'when@score>=60then'该学生考试成绩及格'else'该学生考试成绩不及格'endWHILE语句
WHILE语句用于实现循环结构,其功能是在满足条件的情况下会重复执行T-SQL语句或语句块。
当WHILE后面的条件为真时,重复执行BEGIN…END之间的语句块。通常将CONTINUE或BREAK语句和WHILE语句配合使用。BREAK子句和BREAK语句的区别如下:1、CONTINUE语句的功能是使程序跳出本次循环,开始执行下一次循环。例:统计全班数据库这门课及格的人数2、BREAK语句的功能是立即终止循环,结束整个WHILE语句的执行,并继续执行WHILE语句后的其他语句。例:统计全班数据库这门课是否都及格了。WHILE语句的语法格式为:WHILE条件表达式BEGIN{T-SQL语句或语句块}[BREAK]{T-SQL语句或语句块}[CONTINUE]{T-SQL语句或语句块}END【例】计算1~100之间所有的奇数之和。DECLARE@sumSMALLINT,@iTINYINTSET@i=1SET@sum=0WHILE@i<=100BEGINSET@sum=@sum+@iSET@i=@i+2ENDPRINT'1~100之间所有的奇数之和为:'+STR(@sum)【例】计算2的8次方。DECLARE@valueINT,@iINTSET@i=8SET@value=1WHILE1=1BEGINSET@value=@value*2SET@i=@i-1IF@i<=0BREAKELSECONTINUEENDPRINT'2的8次方为:'+STR(@value)GOTO语句GOTO语句是无条件转移语句,用来改变程序的执行流程。GOTO语句使程序无条件跳转到指定的标签处继续执行,增加了程序设计的灵活性,但同时破坏了程序结构化的特点,增加了程序测试与维护的难度语法格式为:GOTO标签……标签:【例】计算1-100之间所有的偶数之和declare@sumint,@iintset@i=0set@sum=0label_1:set@i=@i+2set@sum=@sum+@iif@i<100GOTOlabel_1print'1-100之间所有的偶数之和为:'+cast(@sumasvarchar(50))RETURN语句RETURN语句用来从批处理、查询或存储过程中无条件退出。RETURN语句的执行是即时且完全的,可在任何时候用于从过程、批处理或语句块中退出。位于RETURN语句之后的语句将不会被执行。RETURN语句的语法格式为:RETURN[整型表达式]Return语句要指定返回值,如果没有指定返回值,SQLServer系统会根据程序执行的结果返回一个内定值,返回值含义如下:返回值含义0程序执行成功-1找不到对象-2数据类型错误-3发生死锁-4违反权限应遵循的原则-5出现语法错误-6出现用户造成的一般错误返回值含义-7程序执行成功-8找不到对象-9数据类型错误-10、-11发生死锁-12表或指针遭到破坏-13数据库遭到破坏-14出现硬件错误如果运行过程中产生了多个错误,SQLServer系统将返回绝对值最大的数值。WAITFOR语句
WAITFOR语句用于在达到指定时间或时间间隔之前,阻止执行批处理、存储过程或事务,直到所设定的时间已到或等待了指定的时间间隔之后才继续运行。WAITFOR语句的语法格式为:WAITFORDELAY'等待时间'|TIME'完成时间'其中“DELAY'等待时间'”用于指定运行批处理、存储过程或事务的等待时间段,最长可为24小时。“TIME'完成时间'”用于指定运行批处理、存储过程或事务的具体时刻。【例】等待10秒钟,再显示spt_monitor表的记录waitfordelay'00:00:10'select*fromspt_monitor【例】上午11时,显示spt_values表的记录任务实现任务一:declare@aint,@bintset@a=662set@b=398if@a!=@b
if@a>@bprint'第一个数比第二个数大'
elseprint'第一个数比第二个数小'elseprint'两个数相等'修改代码,用case语句实现相同功能?declare@aint,@bintset@a=662set@b=398printcase
when@a>@bthen'第一个数比第二个数大'when@a<@bthen'第一个数比第二个数小'else'两个数相等'enddeclare@aint,@bintset@a=len('between')set@b=len('exists')printcasewhen@a>@bthen'between长'when@a<@bthen'exists长'else'一样长'end任务二:任务三:declare@productint,@iint,@sequencevarchar(100)set@i=1set@product=1set@sequence='1'while1=1beginset@product=@product*@iset@i=@i+1set@sequence=@sequence+'*'+ltrim(str(@i))if@product>=5000breakelsecontinueendprint@sequence+'='+ltrim(str(@product))计算1-100之间能被7整除的整数之和declare@sumint,@iintset@i=7set@sum=0while1=1beginif@i%7=0set@sum=@sum+@iset@i=@i+7if@i>100
breakelsecontinueendprint@iprint@sum任务四:创建等待1小时,再显示readersys表中记
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务流程优化与标准化实施手册
- 2025 高中语文必修上册《致云雀》课件
- 市场开拓与品牌打造保证承诺书(8篇)
- 确保企业声誉形象承诺函7篇
- 雨课堂学堂在线学堂云《教育研究方法(南通)》单元测试考核答案
- 学校体育工作保障责任承诺书7篇范文
- 2025 高中信息技术数据结构的队列在消息广播系统中的应用课件
- 肿瘤科护理患者安全管理
- 人事信息管理使用承诺书(4篇)
- 产品展示柜台租赁确认函(6篇)
- 培养高中生主动学习意识
- 信息论与编码期末考试试题
- (高清版)DZT 0004-2015 重力调查技术规范(150 000)
- 营销负责人的优势和劣势
- 光纤传感监测技术
- 加油站防雷应急预案
- 换季衣物收纳整理课件
- 人教版八年级数学下册 (勾股定理)课件
- 配电线路及设备巡视
- 蕉岭县幅地质图说明书
- 小班数学认识数字1-5
评论
0/150
提交评论