Transact-SQL变量与运算符.ppt_第1页
Transact-SQL变量与运算符.ppt_第2页
Transact-SQL变量与运算符.ppt_第3页
Transact-SQL变量与运算符.ppt_第4页
Transact-SQL变量与运算符.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第十一讲Transact-SQL变量与运算符,学习目标,局部变量全局变量程序设计的结构及掌握常用语句程序设计的结构几个常用设计语句,学习完本课程,您应该能够:,知识重、难点分析,重点:局部变量赋值程序设计的结构及掌握常用语句程序设计的结构难点:常用全局变量几个常用设计语句,变量,定义:变量是指在程序运行过程中,其值可以发生变化的量,通常用来保存程序运行过程中的输入数据,计算获得的中间结果和最终结果。分类:在SQLServer中,变量可分为:局部变量全局变量,局部变量,定义:局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量可作为计数器来计算循环执行的次数,或控制循环执行的次数。另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等。和其他高级语言一样,要使用局部变量,必须在使用前首先用declare语句定义。,赋值:declare变量名数据类型,select变量名=表达式,fromwhere,局部变量,说明:可以使用select变量名,输出变量值。在局部变量没有被赋值之前,它的值是null。通常情况下,一条select赋值语句只能返回一行,如果一条select赋值语句在检索数据后返回了多行,则只将返回的最后一行的值赋给了局部变量。,局部变量,赋值:declareatinyintupdate学生表seta=年龄where学号=08001selecta年龄或者declareatinyintselecta=年龄from学生表where学号=08001selecta年龄,局部变量,全局变量,定义:全局变量是SQLServer系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可随时调用。全局变量通常存储一些SQLServer的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或Transact-SQL命令执行后的状态值。注意:全局变量不是由用户的程序定义的,而是在服务器级定义的。用户只能使用预先定义的全局变量。引用全局变量时,必须以标记符“”开头。局部变量的名称不能与全局变量的名称相同。,全局变量,1、rowcount前一条SQL语句处理的行数。除了declare语句之处,其他任何语句都可以改变rowcount的值。2、error前一条SQL语句报告的错误号。如果error为非0值,则表明执行过程中产生了错误。3、identity上次insert操作中使用的indentity值。该全局变量返回最后插入的标识值。,程序语句1、注释符2、批处理3、块语句beginend4、判断语句ifelse5、ifexists语句6、case语句7、print语句,程序流程结构,顺序型结构判断选择型结构ifelsecase循环控制结构while,1、注释符注释是程序代码中不执行的文本字符串(也称为注解),注释符是对程序的说明,一般穿插在程序中并以特殊的标记标注出来。在Transact-SQL中可使用两类注释符:ANSI标准的两个连字符构成的注释符-,用于单行注释。与C语言相同的程序注释符号,即/*/。”/*”用于注释文字的开头,”*/”用于注释文字的结尾,可在程序中标识多行文字为注释。,2、批处理两个GO之间的SQL语句作为一个批处理。在一个批处理中,可包含一条或多条Transact-SQL语句,成为一个语句组。这样的语句组从应用程序一次性地发送到SQLServer服务器进行执行。SQLServer服务器将批处理编译成一个可执行单元,称为执行计划。,3、块语句beginendbegin=19Select平均年龄超过18岁ElseSelect平均年龄不超过18岁,5、ifexists语句ifexists语句用于检测数据是否存在,而不考虑与之匹配的总共行数。ifnotexists(select子查询)else说明:SQL服务器只要找到第一个匹配的行(记录),就停止执行select子查询语句。if语句最多可嵌套150层。,ifexists(select*from学生表where姓名=肖一竹and班级=wj0801)select肖一竹存在elseselect没有肖一竹同学,6、case语句多分支选择结构case,通常用n个条件来控制n+1个操作。case语句有两种格式:1)casewhenthenwhenthenelseend,2)casewhenthenwhenthenelseend,例调整学生的成绩:凡低于70分的增加10%,7080分的增加8%,8090分的增加5%,其他的增加2%。update成绩表set成绩=casewhen成绩=70and成绩=80and成绩90then成绩*1.05else成绩*1.02end,Select学号,课程号,考核等级=casewhen成绩=60and成绩=75and成绩85then优良else优秀EndFrom学生选课表,7、print语句print语句用于把消息传递到客户应用程序的消息处理程序,通常在屏幕上显示。print任何ASCII文本|局部变量名|全局变量名|字符串表达式说明:print语句向客户端返回一个用户自定义的信息,即显示一个字符串(其最长为255个字符串)、局部变量或全局变量。如果变量的值不是字符串,须先用数据类型转换函数(convert)将其转换为字符串。表达式的长度可以超过8000个字符,但超过8000的字符将不会显示。,循环语句while使用while循环结构,可根据条件多次重复执行一条语句或一个语句块.whilebeginbreakcontinueSQL命令行或语句块end,Declarexint,yint,zintSelectx=1

温馨提示

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

评论

0/150

提交评论