已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 使用Transact-SQL编程,授课人:吴志霞 电话QQ:1035837738,课程内容,1.Transact-SQL基础 2.变量的使用 3.流程控制语句 4.错误处理 5.存储过程,课程目标,掌握Transact-SQL,课时安排,理论:4学时 上机:4学时,授课重点,1.Transact-SQL基础 2.变量的使用 3.流程控制语句 4.错误处理 5.存储过程,变量的申明,语法格式 Declare 变量名 数据类型 默认值为空值 用户自己定义的变量为局部变量 系统还提供一种全局变量,系统用它来存储SQL Server配置的设定值和统计数据,参看书192页。,变量赋值,语法格式: SET 变量名 = 表达式 或 SELECT 变量名 = 表达式 ,使用示例,【例】新建一个名称为myVar的变量,然后将一个字符串值存放到变量中去,最后输出这个变量。 语句如下: DECLARE myVar char(20) -定义myVar变量,长度为20字符 SET myVar = 测试SET赋值语句 SELECT myVar GO 【例】将查询语句返回的结果赋给变量。 语句如下: USE SL GO DECLARE myVar int SET myVar=(SELECT COUNT(*) FROM student) -将查询结果赋给变脸myVar,授课重点,1.Transact-SQL基础 2.变量的使用 3.流程控制语句 4.错误处理 5.存储过程,3 流程控制语句,3.1 IF语句 3.2 BEGIN语句 3.3 WHILE语句 3.4 Goto语句,3.1 IF语句,IF语句提供条件判断功能。其语法格式如下: IF ELSE 其中:ELSE是可选的。,IF语句(示例),【例】如果学校学生人数大于5则显示“学校学生人数大于5”,否则显示“学校学生人数小于等于5”。,IF(SELECT count(*) FROM student ) 5 PRINT 学生人数大于5 ELSE PRINT 学生人数小于5 ,3.2 BEGIN语句,单条SQL语句不能满足用户的要求,需要使用多条SQL语句。 语法格式: BEGIN END,BEGIN语句(示例),【例】在上例的基础上,还要让当学生总人数大于5时显示Student表的全部信息。,IF(SELECT count(*) FROM student ) 5 begin PRINT 学生人数大于5 select * from employee end ELSE PRINT 学生人数小于5 ,3.3 WHILE语句,语法格式如下: WHILE BREAK CONTINUE 注意: BREAK表示从最内层的WHILE循环中退出,并将执行出现在END关键字后面的任何SQL语句。 CONTINUE表示从WHILE循环重新开始执行,跳过CONTINUE关键字后的任何SQL语句。,3.4 Goto语句,Goto语句直接将执行流变更到标签处,跳过Goto之后的Transact-SQL语句,在标签处继续处理。 Goto语句语法形式为: Goto label1 lablel1:,Goto语句(示例),【例】使用Goto语句做1到6的累加运算。 语句如下: DECLARE sum int,Number int -声明变量 SET sum = 0 -变量赋初值 SET Number = 1 -变量赋初值 Label_1: -定义标签Label_1 SELECT sum = sum + Number -累加计数 SELECT Number = Number +1 -指向下一个需要累加的数 IF Number 6 -判断累加是否越界 Goto Label_1 -没有越界则继续累加 SELECT sum -显示累加结果,4 错误处理,4.1 使用Error 4.2 使用RowCount,4.1 使用Error,Error是一个全局变量,系统将最近一条T-SQL语句的执行状态存放到其中,,4.2 使用RowCount,RowCount来检测SQL语句执行所影响的行数 【例】将student表中性别为女的记录的sage字段值都加1。,UPDATE student SET sage = sage+1 where ssex= 女 IF RowCount = 0 Print 给定条件的记录不存在,授课重点,1 Transact-SQL基础 2 变量的使用 3 流程控制语句 4 错误处理 5 存储过程,5 存储过程的创建与调用,create语句可以用来创建存储过程。 示例如下: CREATE PROCEDURE p_Student1 as Declare maxAge int Declare minAge int Declare lcount int UPDATE Student SET Sage = Sage+1 where Ssex = 女 IF RowCount = 0 Print 给定条件的记录不存在 ELSE begin Print 给定条件的记录存在 select maxAge=max(sage) from student where ssex=女 select minAge=min(sage) from student where ssex=女 select lcount=count(*) from student where ssex=女 set maxAge=maxAge+1 -得到最大齡 select maxAge,minAge,lcount - return maxAge end GO,调用存储过程: exec p_student1,创建含input参数的存储过程,CREATE PROCEDURE p_Student2 (sno char(9) AS Declare sname char(20) Select sname=sname from Student where sno like sno if sname is null print 无此记录 else select sname GO,调用存储过程:,EXEC p_student2 200215119,创建含output参数的存储过程示例,CREATE PROCEDURE p_Student3 (sno char(9),sname char(20) output) AS Select sname=sname from Student where sno like sno if sname is null print 无此记录 else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 做账实操-砂场的成本核算
- 2025年马拉松比赛项目发展计划
- 夜宵生活常识试题及答案
- 护理试题及答案解析
- 老旧小区供水系统升级方案
- 顺德银行笔试题目及答案
- 中医专业笔试题目及答案
- 2025年通化快大护理事业编题目及答案
- 《战略研究入门》考试题及答案
- 餐厨废弃油脂资源化利用项目商业计划书
- 2025年安徽省农业职业技能大赛(水生物病害防治员)备赛试题库(含答案)
- 【MOOC期末】《深度学习及其应用》(复旦大学)期末考试慕课答案
- 非放射学中轴型脊柱关节炎诊疗指南(2024版)解读
- 矿山买卖委托协议书
- 江苏保安考试试题及答案
- 护理三查八对制度
- 仓储主管培训报告
- 学校信息化设备运维服务方案
- T-CPHA 36-2024 煤炭矿石码头露天堆场堆料机洒水系统技术要求
- 广东省惠州市2024-2025学年高二上学期期末数学试题(含简单答案)
- 全国儿童保健工作规范和技术规范
评论
0/150
提交评论