流程控制与函数课案

上传人:我** 文档编号:114694174 上传时间:2019-11-12 格式:DOC 页数:16 大小:150.50KB
返回 下载 相关 举报
流程控制与函数课案_第1页
第1页 / 共16页
流程控制与函数课案_第2页
第2页 / 共16页
流程控制与函数课案_第3页
第3页 / 共16页
流程控制与函数课案_第4页
第4页 / 共16页
流程控制与函数课案_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《流程控制与函数课案》由会员分享,可在线阅读,更多相关《流程控制与函数课案(16页珍藏版)》请在金锄头文库上搜索。

1、第7章 流程控制与函数 教学目标通过本章学习,使学生掌握SQL Server主要的流程控制结构与语句,掌握SQL Server 2008三类用户自定义函数的特点、定义与用法,并能够编制脚本代码,创建自定义函数,解决实际的应用问题。 教学要求知识要点能力要求关联知识变量(1)掌握变量的定义、赋值与应用DECLARE,SET,SELECT语句流程控制结构(1)掌握SQL Server流程控制结构各个相关语句的格式、功能与用法BEGINEND,IFELSE,CASE,WHILE等语句自定义函数(1)掌握自定义函数概念、分类和特点(2)掌握自定义函数的创建、使用和修改等基本操作方法CREATE FUN

2、CTION,ALTER FUNCTION等语句 重点难点 变量的概念、定义与应用 各个流程控制语句的格式、功能与用法 自定义函数的定义、创建、使用和修改方法167.1任务描述本章完成项目的第7个任务:在大学生选课管理数据库Student中,创建如下几个函数:1创建名称为Age的标量值函数。2创建名称为Xscj的内联表值函数。3创建名称为Kcxf的多语句表值函数。7.2程序中的批处理、脚本、注释当要完成的任务不能由单独的SQL语句来完成时,SQL Server使用批处理、脚本、存储过程、触发器等来组织多条SQL语句。本章主要介绍批处理、脚本,下一章介绍存储过程、触发器。7.2.1 批处理批处理是

3、一条或多条SQL语句的集合,这些语句作为一个整体一起提交给SQL Server,SQL Server将一个批处理作为一个整体进行分析、编译和执行。使用批处理可以节省系统开销,但是如果在一个批处理中包含任何语法错误,则整个批处理就不能被成功地编译和执行。建立批处理时,使用GO语句作为批处理的结束标记。GO语句本身不是SQL语句的组成部分,当编译器读取到GO语句时,它会把GO语句前面所有的语句当做一个批处理,并将这些语句打包发送给服务器。7.2.2 脚本脚本是存储在文件中的一系列SQL语句,即一系列按顺序提交的批处理。一个脚本文件(.sql文件)中可以包含一个或多个批处理。使用脚本文件,可以建立起

4、可重复使用的模块化代码,还可以在不同计算机之间传送SQL语句,方便两台计算机执行同样的操作。7.2.3 注释注释是指程序中用来对程序内容解释说明的语句,编译器在编译程序时会忽略注释语句。在程序中使用注释是一个程序员良好的编程习惯,使用注释不仅能增强程序的可读性,而且有助于日后的管理和维护。注释语句的格式:/*注释内容*/7.3 SQL Server 变量变量是程序语言最基本的角色,用来存放数据。SQL Server的变量是用来在语句之间传递数据的方式之一。SQL Server中的变量分为两种,即全局变量和局部变量,其中,全局变量的名称以两个字符打头,有系统定义和维护,即系统提供的变量;局部变量

5、的名称以一个字符打头,由用户自定义和赋值,即用户自定义的变量。这里主要介绍局部变量。局部变量是指在批处理或脚本中用来保存单个数据值的对象。局部变量常用于作为计数器计算循环执行的次数或控制循环执行的次数,也可以用于保存由存储过程代码返回的数据值。此外,还可以使用Table数据类型的局部变量来代替临时表。1定义局部变量使用一个局部变量之前,必须先定义(声明)这个局部变量。定义局部变量的语法格式:DECLARE 变量 数据类型,n例如:DECLARE x int , y char(10) , z decimal(4,1) 2给局部变量赋值(赋值语句)给局部变量赋值的语法格式:SET 变量=表达式除了

6、可以使用SET语句给局部变量赋值外,还可以使用SELECT查询语句给局部变量赋值,即通过在SELECT语句的选择列表中引用一个局部变量而使它获得一个值,语法格式:SELECT 变量=表达式,n3输出变量或表达式的值输出变量或表达式值的语法格式:PRINT 表达式除了可以使用PRINT语句输出变量或表达式的值外,还可以使用SELECT语句输出变量或表达式的值,语法格式:SELECT 表达式,n【例7-1】定义三个局部变量name,borth,score,并给它们赋值,然后输出变量的值。DECLARE name char(10) , borth date , score decimal(5,1)S

7、ET name=孙一然SET borth=1990-8-23SET score=97.6SELECT name 姓名 , borth 出生日期 , score 成绩GO【例7-2】定义一个局部变量,把学生信息表中计算机系的学生人数赋给该变量,并输出。Use StudentGODECLARE rs intSELECT rs=count(*) From stab Where ssx=计算机系PRINT 计算机系人数:+STR(rs)GO7.4 程序中的流程控制流程控制语句是用来控制程序执行和流程分支的命令。在SQL Server 2008中可以使用的流程控制语句主要有BEGINEND, IFELS

8、E ,CASE, WHILE 等。使用这些语句,使程序具有结构性和逻辑性,完成较复杂的操作。7.4.1 复合语句将多个简单的语句组合成一个整体,即形成一个复合语句,语法格式:BEGIN 语句1 语句2END7.4.2 简单分支语句简单分支语句的语法格式:IF 条件语句或者:IF 条件 语句1ELSE 语句2其中,条件就是指一个逻辑表达式。【例7-3】编写一段代码,要求完成:在教师信息表中,如果存在职称为副教授或教授的教师,就输出他们的姓名、学历、职称,否则输出“没有此条件的教师”信息。USE StudentGOIF Exists( SELECT * From ttab Where zc=副教授

9、 or zc=教授)BEGINPRINT 具有高级职称的教师如下:SELECT xm 姓名 , xl 学历 , zc 职称 From ttab Where zc=副教授 or zc=教授ENDELSE PRINT 没有此条件的教师GO7.4.3 多路分支语句多路分支语句的语法格式:CASEWHEN 条件1 THEN 表达式1WHEN 条件2 THEN 表达式2WHEN 条件n THEN 表达式nELSE 表达式n+1END【例7-4】编写一段代码,要求完成:输出每个选课学生的学号、姓名与所选课的平均成绩,并根据该平均成绩输出其等级。USE StudentGOSELECT xh 学号 , (Se

10、lect xm From stab Where xh=sctab.xh) 姓名 , Avg(cj) 平均成绩 , (CASE WHEN Avg(cj)=90 THEN 优秀 WHEN Avg(cj)=80 THEN 良好 WHEN Avg(cj)=70 THEN 中等 WHEN Avg(cj)=60 THEN 合格 ELSE 不合格 END) 成绩等级From sctab Group By xhGO7.4.4 循环语句循环语句的语法格式:WHILE 循环条件BEGIN 语句组END其中,在循环体(语句组)中还可使用如下两个语句:CONTINUE :使程序忽略该CONTINUE语句之后的语句,提

11、前结束本次循环,重新开始下一次循环。BREAK :使程序提前退出循环,并将控制权转给该循环语句的后一语句。【例7-5】编写一段代码,要求完成:求100之内的偶数之和,并输出。DECLARE n int , s intSET n=1 SET s=0WHILE n=100BEGINIF n%2=0SET s=s+nSET n=n+1ENDPRINT sGO7.4.5 其他语句1暂停语句语法格式:WAITFOR DELAY hh:mm:ss例如:WAITFOR delay 00:00:05使程序暂停5秒钟,再执行其下一语句。2返回语句语法格式:RETURN功能:无条件中止查询、存储过程或批处理等,即

12、结束当前运行的程序或存储过程返回。注意:当RETURN语句用于存储过程时,格式必须是:RETURN 整形表达式7.5 SQL Server函数函数在数据库管理和维护中经常被使用,正确地使用函数,可以为用户操作提供很大方便,如查看系统信息、进行数学计算、简化数据查询和前面用到的字符串截取等。一般情况下,在允许使用变量、字段和表达式的地方都可以使用函数。在使用函数时,只要提供正确的参数,就可以得到想要的结果。函数可以由系统提供,也可以由用户创建。系统提供的函数称为内置函数,它为用户方便快捷地执行某些操作提供帮助。用户创建的函数称为用户自定义函数,它是用户根据自己的特殊需要而创建的,用来补充和扩展内

13、置函数。在第三章中已经介绍过常用的内置函数,因此这里主要介绍用户自定义函数。7.5.1 创建自定义函数 在SQL Server中,用户不仅可以使用标准的内置函数,也可以根据自己的特殊需求创建函数。在SQL Server 2008中,用户自定义函数可为三种类型:标量值函数、内联表值函数和多语句表值函数。这三类函数都可以使用CREATE FUNCTION 语句创建,也可以使用SQL Server Management Studio 创建。在创建时需要注意:函数名在数据库中必须是唯一,其可以有参数,也可以没有参数,其参数只能是输入参数,最多可以有1024个参数。创建自定义函数语法格式:CREATE

14、FUNCTION 函数名(形式参数定义) RETURNS 函数返回值数据类型ASBEGIN函数体语句组RETURN 函数返回值表达式END其中,函数的形式参数定义格式为:形参变量 数据类型,n1创建用户自定义标量值函数用户自定义标量值函数与系统内置标量函数类似,返回在RETURNS子句中定义的类型的单个数据值。当需要在代码中的多个位置进行相同的数学计算时,用户自定义标量值函数十分有用。下面通过以下例题来学习用户自定义标量值函数的建立和使用。【例7-6】在数据库Student中创建一个标量值函数pjcj,该函数通过输入学生的学号判断该学生是否进行选课,若有选修课,则返回其所有选修课程的平均成绩,否则,返回-1。USE StudentGOCREATE FUNCTION pjcj(no char(6) RETURNS decimal(5,1)BEGIN DECLARE s decimal(5,1) IF exists(Select * From sctab Where

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号