收藏 分销(赏)

SQL流程控制语句.ppt

上传人:可**** 文档编号:744184 上传时间:2024-02-29 格式:PPT 页数:23 大小:623.50KB
下载 相关 举报
SQL流程控制语句.ppt_第1页
第1页 / 共23页
SQL流程控制语句.ppt_第2页
第2页 / 共23页
SQL流程控制语句.ppt_第3页
第3页 / 共23页
SQL流程控制语句.ppt_第4页
第4页 / 共23页
SQL流程控制语句.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、流程控制语句流程控制语句变量SQLServer的变量分为两种:的变量分为两种:用户自己定义的用户自己定义的局部变量局部变量开头的标识符表示局部变量开头的标识符表示局部变量系统定义和维护的系统定义和维护的全局变量全局变量开头的标识符表示全局变量开头的标识符表示全局变量 局部变量局部变量的作用范围:局部变量的作用范围:定义局部变量的定义局部变量的批处理批处理、存储过程、触发器或语句块。存储过程、触发器或语句块。1.局部变量的定义局部变量的定义DECLARE局部变量名局部变量名数据类型数据类型,n注意注意:变量不能是:变量不能是text、ntext或或image数据类型数据类型。例:定义变量例:定义

2、变量sname为为nvarchar(10)类型,类型,定义变量定义变量snum为为int类型类型例:定义变量例:定义变量snum为为int类型:类型:DECLARE snum intDECLARE sname nvarchar(10),snum int不能有空格不能有空格(1)用)用SET语句给局部变量赋值语句给局部变量赋值SET局部变量名局部变量名=变量值变量值(2)在查询语句在查询语句SELECT中中给局部变量赋值给局部变量赋值SELECT局部变量名局部变量名=变量值变量值,n2 2.局部变量的赋值局部变量的赋值局部变量在赋值之前,默认为局部变量在赋值之前,默认为NULL。如果在程序中引用

3、它,必须要先为其赋值。如果在程序中引用它,必须要先为其赋值。P1363.局部变量的局部变量的输出输出PRINT局部变量局部变量注:变量的输出仅用于注:变量的输出仅用于DBA调试时使用。调试时使用。T-SQL也提供了用于编写过程性代码的语法结构,也提供了用于编写过程性代码的语法结构,可用于进行顺序、分支、循环等程序设计。可用于进行顺序、分支、循环等程序设计。控制流控制流语语句句说说明明BEGINEND程序程序块语块语句句IFELSE条件条件处处理理语语句句CASE分支分支语语句句WHILE循循环语环语句句GOTO无条件跳无条件跳转语转语句句RETURN无条件退出无条件退出语语句句WAITFOR延

4、延迟语迟语句句BREAK跳出循跳出循环语环语句句CONTINUE跳出本次循跳出本次循环语环语句句BEGINEND语句块的界定,相当于语句块的界定,相当于C语言中的语言中的“”BEGINsql_statement|statement_blockEND注意:注意:BEGIN和和END语句必须成对使用语句必须成对使用P145IFELSEIFBoolean_expressionsql_statement|statement_blockELSEsql_statement|statement_blockDECLARExint,yintSETx=1SETy=4IFxyPRINTxyELSEPRINTx80P

5、RINT成绩不错成绩不错ELSEPRINT需要继续努力需要继续努力3-105的平均成绩的平均成绩80如果布尔表达式中含有如果布尔表达式中含有SELECT语句,必须用圆括号将语句,必须用圆括号将SELECT语句括起来语句括起来练习:判断练习:判断“陆君陆君”是否在是否在95033班,如果在输出班,如果在输出”陆陆君在君在95033班班”否则输出否则输出“陆君不在陆君不在95033班班”USESchoolIFEXISTS(SELECT*FROMStudentWHERESname=陆君陆君ANDClass=95033)PRINT陆君在陆君在95033班班ELSEPRINT陆君不在陆君不在95033班

6、班陆君在陆君在95033班班练习:判断练习:判断“陆君陆君”是否在是否在95033班,如果在输出班,如果在输出”陆君在陆君在95033班班”否则输出否则输出“陆君不在陆君不在95033班班”USESchoolGOIF陆君陆君in(SELECTSnameFROMStudentWHEREClass=95033)PRINT陆君在陆君在95033班班ELSEPRINT陆君不在陆君不在95033班班练习:判断练习:判断“陆君陆君”是否在是否在95033班,如果在班,如果在输出输出”陆君在陆君在95033班班”否则输出否则输出“陆君不陆君不在在95033班班”USESchoolIF95033=(SELEC

7、TClassFROMStudentWHERESname=陆君陆君)PRINT陆君在陆君在95033班班ELSEPRINT陆君不在陆君不在95033班班多条件分支选择多条件分支选择CASE(1)简单表达式)简单表达式CASEinput_expressionWHENTHEN.nELSEEND2)选择表达式)选择表达式CASEWHENTHEN.nELSEENDCASE具有以下两种格式:具有以下两种格式:(1)简单表达式简单表达式,将某个表达式与一组简单表达式进行比较,将某个表达式与一组简单表达式进行比较以确定结果。以确定结果。(2)选择表达式选择表达式,计算一组布尔表达式以确定结果。,计算一组布尔表

8、达式以确定结果。例:用例:用CASE语句,根据教师的职称来分级语句,根据教师的职称来分级USESchoolSELECTTname,depart,CASEProfWHEN教授教授THEN高级职称高级职称WHEN副教授副教授THEN高级职称高级职称WHEN讲师讲师THEN中级职称中级职称WHEN助教助教THEN初级职称初级职称ELSE无职称无职称ENDFROMTeacher只做临时只做临时显示,并显示,并不对表进不对表进行修改行修改例:利用例:利用CASE语句对学生的成绩进行评价语句对学生的成绩进行评价USESchoolSELECTSno,Cno,CASEWHENDegree=90THENAWHE

9、NDegree=80THENBWHENDegree=70THENCWHENDegree=60THENDELSEEENDASRankFROMScoreORDERBYSno循环语句 WHILEWHILEBoolean_expressionsql_statement|statement_blockBREAK-跳出本层循环跳出本层循环sql_statement|statement_blockCONTINUE-跳出本次循环跳出本次循环 sql_statement|statement_block-布尔表达式,进行条件判断布尔表达式,进行条件判断练习:计算从练习:计算从1加到加到100并输出结果。并输出结果

10、。DECLAREsum100int,iintSETsum100=0SETi=0WHILEi=100BEGINSETsum100=sum100+iSETi=i+1ENDPRINTsum100下列语句实现的什么功能下列语句实现的什么功能WHILE(SELECTAVG(Degree)FROMScoreWHERECno=3-105)=100BREAKENDSELECT*FROMScoreWHERECno=3-105-计算计算3-105课的平均成绩课的平均成绩-将将3-105课的成绩提高课的成绩提高5分分/*如果如果3-105课的最高成绩课的最高成绩大于大于100分则跳出循环分则跳出循环*/跳转语句 G

11、OTOGOTO语句将程序无条件地转到相应的语句将程序无条件地转到相应的标签标签的语句。的语句。DECLAREsum100int,iintSELECTsum100=0,i=0My_Loop:SETsum100=sum100+iSETi=i+1IFi=100GOTOMy_LoopPRINTsum100标签要符合命名规则,并且有标签要符合命名规则,并且有“:”不利于程序阅读,不不利于程序阅读,不符合结构化程序的三符合结构化程序的三种思想,因此不提倡种思想,因此不提倡用用GOTO语句语句延时语句 WAITFORWAITFOR语句可以将它之后的语句在一个指定的时语句可以将它之后的语句在一个指定的时间间隔

12、之后执行,或在未来的某一指定时间执行。间间隔之后执行,或在未来的某一指定时间执行。WAITFORDELAY延时时间延时时间|TIME到达时间到达时间 WAITFORDELAY0:00:05PRINT时间到!时间到!WAITFORTIME20:00:00PRINT下课喽下课喽!-五秒钟后显示五秒钟后显示“时间到!时间到!”必须是必须是datetime数据类型,数据类型,但不能包含日期部分但不能包含日期部分必须是必须是datetime数据类型,数据类型,但不能包含日期部分但不能包含日期部分不超过不超过24小时小时函数P1511.1.字符串函数字符串函数2.2.日期和时间函数日期和时间函数3.3.数学函数数学函数4.4.系统函数系统函数批处理批处理批处理是包含一个或多个是包含一个或多个T-SQL语句的组,从应用语句的组,从应用程序一次性地发送到程序一次性地发送到SQLServer执行。执行。GO是一个批处理的结束语句。是一个批处理的结束语句。1.GO不是不是T-SQL语句,但是可以被查询分析器识别。语句,但是可以被查询分析器识别。2.GO命令和命令和Transact-SQL语句不可在同一行上。但语句不可在同一行上。但在在GO命令行中可包含注释。命令行中可包含注释。P143

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 外语文库 > 高中英语

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服