【文档说明】SQL-Server与数据库应用开发课件.ppt,共(33)页,1.441 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92299.html
以下为本文档部分文字说明:
SQLServer与数据库应用开发第10章T-SQL编程10.1.SQLServer编程基础10.2.SQLServer的系统函数10.3.用户自定义函数10.4.游标10.5编程综合应用主要内容【知识要求】:1.了解T-SQL编程的基本语法和流程控制2.了解系统函数使用3.理解
用户自定义函数;4.了解游标的作用。【能力要求】:1.会进行数据库编程;2.会编写自定义函数;3.掌握游标编程技术。知识与能力要求SQLServer中的编程语言就是T-SQL语言,T-SQL命令除了可以单独使用以外,还可以使用流程控制语句吧多个命令组合成一段
程序,用以完成各种更为复杂的程序算法。本节主要内容学习T-SQL语法约定,常量,变量,表达式,流程控制等内容。10.1SQLServer编程基础1.T-SQL语法约定1.标识符定义,命名规则2.续行3.注释单行--,快
注释/*……*/4.批处理go2.常量在程序运行过程中,其值不变的符号称为常量。根据常量值的不同类型,常量分为:字符串常量二进制常量整型常量实数常量日期时间常量货币常量3.变量(1)、局部变量用户自己定义的变量称为局部变
量。局部变量用于保存特定类型的单个数据值的对象。定义格式:DECLARE局部变量名数据类型[,...n]局部变量的赋值SET@局部变量名=表达式[,…n]SELECT@局部变量名=表达式[,…n][FROM子句][WHERE子句]【
案例10.1】声明一个局部变量dept_name,把TestDB数据库中的‚系部‛表中系部代码为‘01’的系部名称赋给局部变量dept_name,并输出。3.变量(2).全局变量全局变量由系统定义和维护的变量,用于记录服务器活动状态的一组数据。全局变量名由@@符号开始。用户不能建立全局变量,
也不可能使用SET语句去修改全局变量的值。例如:@@version:返回当前SQLServer服务器的版本和处理器类型。@@language:返回当前SQLServer服务器的语言。4.流程控制语句流程控制语句主要用于控制程序的顺序。(1)、BEGIN…END语句BEGIN
…END语句用于将多个Transact-SQL语句组合为一个逻辑块,相当于一个单一语句,达到一起执行的目的。它的语法格式如下。BEGIN{语句1语句2…}END4、流程控制语句(2)、IF…ELSE语句IF…ELSE语句实现程序选择结构。它的语法格式如下。IF逻辑表达式{语句块1}[ELSE
{语句块2}]【案例10.2】在TestDB数据库中,查询学生的平均成绩是否超过75,并显示相关信息。4、流程控制语句--在TestDB数据库中,查询学生的平均成绩是否超过75,并显示相关信息。useTestDBgodeclare@avg_scorefloatselect@avg_scor
e=AVG(score)fromtb_scoreif@avg_score>75print'学生的平均成绩超过了'elseprint'学生的平均成绩不超过了'go4、流程控制语句(3)WHILE语句WHILE语句实现循环结构。如果指定的条件为真,就重复执行语
句块,直到逻辑表达式为假。语法格式如下。WHILE逻辑表达式BEGIN语句块1[CONTINUE][BREAK]语句块2END4.流程控制语句(4)RETURN语句RETURN语句实现从查询或过程中无条件退出的功能。语法格式如下。RETURN[整数表达式](5)PRINTPRI
NT语句用于向客户端返回用户信息。语法格式:PRINT字符串|变量|字符串的表达式4.流程控制语句(6)WAITFOR语句WAITFOR语句实现语句延缓一段时间或延迟到某特定的时间执行。语法格式如下。WAITFOR{DELAY'tim
e'|TIME'time'}说明:DELAY:指示一直等到指定的时间过去,最长可达24小时。‘time’:要等待的时间。TIME:指示SQLServer等待到指定的时间【案例10.3】根据‚学生‛表输出‚系部代码‛
为‚02‛的‚学号‛、‚姓名‛、‚出生日期‛,在输出之前等待4秒。V10-1-3WAITFOR语句应用视频.wmv在SQLServer查询、报表和许多T-SQL语句中常使用函数来返回信息,SQL中的函数在其他编程语言中使用的函数相似。函数返回
类型可以是用于表达式的值或表格。SQLServer中的函数可分系统函数和用户自定义函数。10.2SQLServer的系统函数1.聚合函数聚合函数用于对一组值执行计算,并返回单个值。聚合函数可以在SELECT语句的选择列表(子查询或外部查询)、GROUPBY子句、COMPUTEBY子句、HA
VING子句中作为表达式使用。常用的聚合函数:AVG()、COUNT()、MAX()、MIN()、SUM()等等。【案例10.4】统计课程平均成绩。useTestDBselectcos_nameas课程名,avg(tb_score.sco
re)as平均成绩fromtb_course,tb_scorewheretb_course.cos_num=tb_score.cos_numgroupbytb_course.cos_name图10.1聚合函数的使用示例聚合函数应用2、数学函
数数学函数用于对数字表达式进行数学计算并返回运算结果。常用的数学函数:(1)ABS(数值表达式):返回表达式的绝对值;(2)CEILING(数值表达式):返回大于或等于数值表达式的最小整数;(3)FLOOR(数值表达式):返回小于或等于表达式值得最小整数;(4)PI
():返回PI的常量值,3.14159265358979。(5)RAND():返回0~1之间的随机float值。(6)POWER(数字表达式,幂):返回数字表达式的指定次幂的值。(7)ROUND(x,y):返回以y指定的精度进行四舍五入后的数值。【案例10
.5】数学函数的应用1、求给定数-24.5的绝对值:selectabs(-24.5)2、产生一个1-100随机数:selectceiling(RAND()*100)3、计算43的值:selectpower(4
,3)数学函数应用图10.2数学函数的使用示例3.字符串函数字符串函数用于对字符串输入值执行操作,返回字符串或数字值。常用字符串函数(1)ASCII(str):返回字符表达式最左端字符的ASCII代码
值。(2)CHAR(x):将ASCII代码转换为字符的字符串函数,返回值在0-255之间。(3)LEFT(str,x):返回字符串中从左边开始指定个数的字符。(4)LEN(str):返回字符串的字符个数,不包含尾随空格
。(5)LOWER(str):将大写字符数据转换为小写字符数据,返回类型为varchar。(6)LTRIM(str):删除起始空格,返回类型为varchar。(7)REPLACE(str1,str2,str3):用第三个表达式替换第一个字符串表达式中出现的所有第二个给定
字符串表达式。3、字符串函数常用字符串函数(8)REPLICATE(str,x):以指定的次数重复字符表达式。(9)REVERSE(str):将指定字符串逆序排列。(10)RIGHT(str,x):返回字符串中从右边开始指定个数的字符。(11)R
TRIM(str):删除尾随空格,返回类型为varchar。(12)SPACE(x)为产生指定个数的空。(13)SUBSTRING(str,start,len):截取指定的部分字符串。(14)UPPER(str):将小写字符数据转换为大写字符数据,返回类型
为varchar。【案例10.6】字符串函数的应用1、将‚石化学院‛中的‚学院‛用‚职业技术学院‛selectreplace(‘石化学院’,‘学院’,‘职业技术学院’)2、将‚石化职业技术学院‛逆序输出selectreverse('石化职业技术学院')3、去掉‚石化职业技术学院‛前面
的空格selectLtrim(‘石化职业技术学院')4、提取‚石化职业技术学院‛右边4个字符selectright('石化职业技术学院',4)字符串函数应用图10.3字符串函数的使用示例日期和时间函数用于对日期和时间输入值执行操作,并
返回一个字符串、数字值或日期和时间值。常用日期和时间函数(1)GETDATE():返回当前系统日期和时间。(2)DATENAME(datepart,date):返回某日期指定部分的字符串。(3)DAY(date):返回代
表指定日期的天的日期部分的整数。(4)MONTH(date):返回代表指定日期月份的整数。(5)YEAR(date):返回表示指定日期中的年份的整数。4.日期和时间函数【案例10.7】日期和时间函数的应用1、返回
当前系统日期和时间。2、返回当前系统日期的天3、返回代表指定日期的天的日期部分的整数。4、返回代表指定日期月份的整数。5、返回表示指定日期中的年份的整数。4.日期和时间函数图10.4日期时间函数的应用用户自定义函数是由一个或多个T-SQL语句组成的
子程序,一般是为了方便重用。用户定义函数可以有输入参数并有返回值,但没有输出参数。当函数的输入参数有默认值是,调用该函数是必须明确指定DEFAULT关键字,才能获取默认值。使用CREATEFUNCTION语句可创建用户定义函数,使用ALTERFUNCTION语句可修改用
户定义函数,使用DROPFUNCTION语句可删除用户定义函数。10.3用户自定义函数CREATEFUNCTION函数名(变量列表)RETURNS函数返回值类型ASBEGIN函数体RETURN返回值END1、用户自定义函数的格式V10-3-1用户自定义函数的应用
视频.wmv【案例10.8】自定义函数if_pass,统计学生考试是否合格的信息。createfunctionif_pass(@xint)returnsvarchar(8)asbegindeclare@pass1varchar(8)if@x>=
60set@pass1='合格'ELSEset@pass1='不合格'return@pass1endgo2、用户自定义函数图10.5用户自定义函数10.4游标1、游标的基本概念使用SELECT语句返回的结果集包括所有满足条件的数据行,但在实际开发应用程序时
,往往每次需要处理一行或一部分行,此时可以使用游标。游标支持一下功能:在SELECT结果集中定位特定的数据行查询SELECT结果集当前位置的数据行修改SELECT结果集当前位置数据行的数据2、SQLServer支持两种类型的游标:T—SQL服务器游标数据库应用程序编程接口(API)游
标函数10.4.1游标的使用过程1、T—SQL服务器游标的声明使用DECLARECURSOR语句,语法格式如下:DECLARE游标名称CURSORFORselect语句2、使用OPEN打开游标语法格式如:O
PEN游标名称3、使用FICTH语句从SELECT结果集中查询单独的数据行,语法格式如下:FECTHNEXTFROM游标名称[INTO@变量名[,……]]10.4.1游标的使用过程4、使用UPDATE或DELETE修改游标位置的
数据行。5、使用CLOSE语句关闭游标,结束动态游标的操作并释放资源。语法格式如下:CLOSE游标名称6、使用DEALLOCATE语句从当前的会话中删除对游标的引用,以释放分配给游标的所有资源。游标释放之后不可以重新打开。DEALLOCATE游标名称10.4.1游标的应用【
案例10.9】声明一个curCourse的游标,该游标从tb_course表中查询所有数据行useTestDBgodeclarecurCoursecursorforselect*fromtb_courseopencurCoursefetchnextfr
omcurCoursegoclosecurCoursedeallocatecurcoursego图10.6游标的应用1.利用TestDB数据库,使用SQLServer编程知识,生成试卷。2.编程阅卷,计算2016-6-20,学号为‘20120101010
1’学生,课程编号为‘001’的课程总成绩。10.5综合应用见习题与答案习题