已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十一讲 Transact-SQL变量与运算符,学习目标,局部变量 全局变量 程序设计的结构及掌握常用语句 程序设计的结构 几个常用设计语句,学习完本课程,您应该能够:,知识重、难点分析,重点: 局部变量赋值 程序设计的结构及掌握常用语句 程序设计的结构 难点: 常用全局变量 几个常用设计语句,变量,定义: 变量是指在程序运行过程中,其值可以发生变化的量,通常用来保存程序运行过程中的输入数据,计算获得的中间结果和最终结果。 分类: 在SQL Server中,变量可分为: 局部变量 全局变量,局部变量,定义: 局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量可作为计数器来计算循环执行的次数,或控制循环执行的次数。另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等。 和其他高级语言一样,要使用局部变量,必须在使用前首先用declare语句定义。,赋值: declare 变量名 数据类型, select 变量名=表达式, from where ,局部变量,说明: 可以使用select 变量名,输出变量值。 在局部变量没有被赋值之前,它的值是null。 通常情况下,一条select赋值语句只能返回一行,如果一条select赋值语句在检索数据后返回了多行,则只将返回的最后一行的值赋给了局部变量。,局部变量,赋值: declare a tinyint update 学生表 set a=年龄 where 学号=08001 select a 年龄 或者 declare a tinyint select a=年龄 from 学生表 where 学号=08001 select a 年龄,局部变量,全局变量,定义: 全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可随时调用。全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或Transact-SQL命令执行后的状态值。 注意: 全局变量不是由用户的程序定义的,而是在服务器级定义的。 用户只能使用预先定义的全局变量。 引用全局变量时,必须以标记符“”开头。 局部变量的名称不能与全局变量的名称相同。,全局变量,1、rowcount 前一条SQL语句处理的行数。 除了declare 语句之处,其他任何语句都可以改变rowcount的值。 2、error 前一条SQL语句报告的错误号。 如果error为非0值,则表明执行过程中产生了错误。 3、 identity 上次insert操作中使用的indentity值。 该全局变量返回最后插入的标识值。,程序语句 1、注释符 2、批处理 3、块语句 beginend 4、判断语句ifelse 5、if exists语句 6、case语句 7、print语句,程序流程结构,顺序型结构 判断选择型结构 ifelse case 循环控制结构 while,1、 注释符 注释是程序代码中不执行的文本字符串(也称为注解),注释符是对程序的说明,一般穿插在程序中并以特殊的标记标注出来。 在Transact-SQL中可使用两类注释符: ANSI标准的两个连字符构成的注释符-,用于单行注释。 与C语言相同的程序注释符号,即/*/。 ”/*”用于注释文字的开头,”*/”用于注释文字的结尾,可在程序中标识多行文字为注释。,2、批处理 两个GO之间的SQL语句作为一个批处理。 在一个批处理中,可包含一条或多条Transact-SQL语句,成为一个语句组。这样的语句组从应用程序一次性地发送到SQL Server服务器进行执行。SQL Server服务器将批处理编译成一个可执行单元,称为执行计划。,3、 块语句 beginend begin SQL命令行或程序块 end 说明: beginend用来设定一个程序块,在beginend内的所有程序将被视为一个单元执行。 尽管beginend几乎可以用在程序中的任何地方,但它最常见的用法是和while或ifelse 组合使用。 在beginend中可嵌套另外的beginend来定义另一程序块。,4、 判断语句ifelse if else 说明: ifelse用来判断当某一条件成立时,执行某段程序,条件不成立时执行另一段程序。 其中条件表达式可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。 如果不使用语句块,if或else只能执行一条命令。 ifelse语句可以进行嵌套。,If (Select avg(年龄) From 学生表 Where 班级=wj0801 )=19 Select 平均年龄超过18岁 Else Select 平均年龄不超过18岁,5、 if exists语句 if exists 语句用于检测数据是否存在,而不考虑与之匹配的总共行数。 if not exists (select 子查询) else 说明: SQL服务器只要找到第一个匹配的行(记录),就停止执行select子查询语句。 if语句最多可嵌套150层。,if exists ( select * from 学生表 where 姓名=肖一竹and 班级=wj0801 ) select 肖一竹存在 else select 没有肖一竹同学,6、 case语句 多分支选择结构case,通常用n个条件来控制n+1个操作。 case语句有两种格式: 1)case when then when then else end,2)case when then when then else end,例 调整学生的成绩:凡低于70分的增加10%,7080分的增加8%,8090分的增加5%,其他的增加2%。 update 成绩表 set 成绩= case when 成绩=70 and 成绩=80 and 成绩90 then 成绩*1.05 else 成绩*1.02 end,Select 学号,课程号,考核等级= case when 成绩=60 and 成绩=75 and 成绩85 then 优良 else 优秀 End From 学生选课表,7、 print语句 print语句用于把消息传递到客户应用程序的消息处理程序,通常在屏幕上显示。 print 任何ASCII文本 | 局部变量名 | 全局变量名 | 字符串表达式 说明: print语句向客户端返回一个用户自定义的信息,即显示一个字符串(其最长为255个字符串)、局部变量或全局变量。 如果变量的值不是字符串,须先用数据类型转换函数(convert)将其转换为字符串。表达式的长度可以超过8000个字符,但超过8000的字符将不会显示。,循环语句while 使用while循环结构,可根据条件多次重复执行一条语句或一个语句块. while begin break continue SQL命令行或语句块 end,Declare x int,y int ,z int Sel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江苏省溧阳市高考物理三轮冲刺模拟卷含答案详解(综合卷)
- 2025年黑龙江省北安市高考物理周测模拟卷【突破训练】附答案详解
- 2026年辽宁省凤城市高二化学下册期末考试模拟检测卷附完整答案(必刷)
- 2026年福建省建瓯市高二化学下册期末考试模拟检测卷附完整答案(历年真题)
- 2026年广东省乐昌市高二化学下册期末考试模拟考试卷及完整答案(历年真题)
- 2026年福建省建瓯市高二化学下册期末考试模拟考试卷带答案(研优卷)
- 2026年河南省辉县市高二化学下册期末考试模拟考试卷附答案(黄金题型)
- 2026年甘肃省临夏市高二化学下册期末考试模拟测试卷及完整答案【易错题】
- 2026年福建省建瓯市高二化学下册期末考试模拟测试卷附答案(A卷)
- 2026-2030中国会计实务管理行业市场发展趋势与前景展望战略分析研究报告
- 2026年数据知识产权登记保护试点及数据资产入表衔接试题
- 2026年云南省中考语文试卷真题及答案详解(精校打印版)
- 2026-2030中国染发剂行业现状调查与发展前景预测分析研究报告
- 北师大版三年级数学下册期末测试卷(名校版)含答案
- 雨课堂学堂在线学堂云《自然辩证法概论(北京航空航天)》单元测试考核答案
- 2026年安徽省马鞍山社区工作者考试题库及答案
- 七年级下册道德与法治全册知识梳理(2026年春)
- 2026年度开展应急疏散逃生演练全套资料
- 电力设备制造与质量检验规范
- GB/T 18570.9-2025涂覆涂料前钢材表面处理表面清洁度的评定试验第9部分:水溶性盐的现场电导率测定法
- 2026年高考全国二卷数学真题试卷(含答案)
评论
0/150
提交评论