T-SQL程序设计之批处理与程序流程控制语句.ppt_第1页
T-SQL程序设计之批处理与程序流程控制语句.ppt_第2页
T-SQL程序设计之批处理与程序流程控制语句.ppt_第3页
T-SQL程序设计之批处理与程序流程控制语句.ppt_第4页
T-SQL程序设计之批处理与程序流程控制语句.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

T-SQL程序设计之批处理与程序流程控制语句,批处理与程序流程控制语句,一般而言,一个服务器端的程序是由以下一些成分组成:批、注释、变量、流程控制语句、错误和消息处理。,1 批处理,定义:批指包含一条或多条T-SQL语句的语句组,这组语句从应用程序一次性地发送到SQL SERVER服务器执行,可提高效率。批结束的标志是“GO”。 使用批限制: CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。 在同一个批中不能删除一个数据库对象又重建它。 在同一个批中不能改变一个表后,再立即引用其新列。 若批处理中第一个语句是执行某个存储过程的EXECUTE语句,则EXECUTE可省略。,2 流程控制语句,顺序结构 输入数据 计算处理 输出数据 选择结构 循环结构,2 流程控制语句,1复合语句 包括一系列的 Transact-SQL 语句,称为语句块。 语法格式: BEGIN sql_statement /*是任何有效的 Transact-SQL 语句 n END 说明: BEGIN.END 语句块允许嵌套 Begin和End之间必须有内容,和C语言不同 ,2 流程控制语句,2PRINT语句 将用户定义的消息返回客户端。 语法格式: PRINT any ASCII text | local_variable | FUNCTION | string_expr 说明: any ASCII text:一个文本字符串。 local_variable:任意有效的字符数据类型变量。 FUNCTION:是返回字符串结果的函数。 string_expr:是返回字符串的表达式。 课外:,2 流程控制语句,3判断语句(IFELSE) 语法格式: IF boolean_expression /*条件表达式 sql_statement|statement_block /*条件表达式为真 ELSE sql_statement|statement_block /*条件表达式为假 说明: 如果条件表达式中含有SELECT语句,必须用圆括号将SELECT语句括起来。 必须是语句块,【例 】如果“计算机文化基础”的平均成绩高于75分,则显示“平均成绩高于75分”;否则显示“平均成绩低于75分”。 USE XS DECLARE text1 char(20) SET text1=平均成绩高于75分 IF (SELECT AVG(成绩) FROM XSCJ,KCXX WHERE XSCJ.课程编号=KCXX.课程编号 AND 课程名称=计算机文化基础)=75 BEGIN SELECT text1=平均成绩低于75 SELECT text1 END ELSE SELECT text1 GO Kewai:,【例】IF.ELSE语句的嵌套使用。 USE XS IF (SELECT AVG(成绩) FROM XSCJ,KCXX WHERE XSCJ.课程编号=KCXX.课程编号 AND 课程名称=计算机文化基础)75 SELECT 平均成绩高于75. ELSE IF (SELECT AVG(成绩) FROM XSCJ,KCXX WHERE XSCJ.课程编号=KCXX.课程编号 AND 课程名称=计算机文化基础 )75 SELECT 平均成绩低于75. ELSE SELECT 平均成绩为75. GO,2 流程控制语句,无条件转移(GOTO)语句 将执行流程转移到标号指定的位置。 语法格式: GOTO label Label是指向的语句标号,标号必须符合标识符规则。 标号的定义形式: label : 语句,补充:,declare a int set a=0 l:USE XS use xs1 if a1 begin set a=1 goto l end -无begin end会如何? Kewai:,2 流程控制语句,4循环语句WHILE、BREAK语句和CONTINUE语句 (1)WHILE循环语句 语法格式: WHILE boolean_expression sql_statement|statement_block /*循环体 说明: 如果条件表达式中含有SELECT语句,必须用圆括号将SELECT语句括起来。,【例 】求1+2+3+100之和。 DECLARE i int, s int SET s=0 SET i=1 WHILE i101 BEGIN SET s=s+i SET i=i+1 END PRINT 和是 + STR(s),2 流程控制语句,(2)BREAK语句 一般用在循环语句中,用于退出本层循环。当程序中有多层循环嵌套时,使用BREAK语句只能退出其所在的这一层循环。 语法格式: BREAK (3)CONTINUE语句 一般用在循环语句中,结束本次循环,重新转到下一次循环条件的判断。 语法格式: CONTINUE,Break/Continue例子,DECLARE i int,j int, s int SET s=0 SET i=1 SET j=1 WHILE i3 break SET s=s+j SET j=j+1 END SET i=i+1 END PRINT 和是 + str(s) -break换成continue效果?,2 流程控制语句,5RETURN语句 用于从批处理或语句块中无条件退出,不执行位于RETURN之后的语句。 语法格式: RETURN integer_expression 说明: integer_expression是将整型表达式的值返回。存储过程可以给调用过程或应用程序返回整型值 除非特别指明,所有系统存储过程返回0值表示成功,返回非0值则表示失败。 当用于存储过程时,RETURN不能返回空值。,2 流程控制语句,WAITFOR语句 语法格式: WAITFOR DELAY time | TIME time 参数含义: DELAY time:用于指定SQL Server必须等待的时间,最长可达 24 小时, time可以用datetime 数据格式指定,用单引号括起来,但在值中不允许有日期部分,也可以用局部变量指定参数。 TIME time:指定SQL Server 等待到某一时刻, time值的指定同上。 【例】select getdate() waitfor delay 00:00:04 select getdate(),select getdate() go

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论