ImageVerifierCode 换一换
格式:PPT , 页数:112 ,大小:1.84MB ,
文档编号:4161625      下载积分:18 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4161625.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(林田)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(Transact-SQL语言学习培训模板课件.ppt)为本站会员(林田)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

Transact-SQL语言学习培训模板课件.ppt

1、第第5章章 Transact-SQL、存储过程和触发器存储过程和触发器第3次 Transact-SQL语言简称语言简称T-SQL语言。是微软公司在语言。是微软公司在SQL-Server中使用的流程控制语言。是对标准中使用的流程控制语言。是对标准SQL语言的语言的扩充。扩充。主要特点:主要特点:(1)是一种交互语言,功能强大,简单易学。)是一种交互语言,功能强大,简单易学。(2)既可直接访问数据库,也可嵌入到宿主语言中去执行。)既可直接访问数据库,也可嵌入到宿主语言中去执行。(3)非过程化高,语言的执行由系统自动完成。)非过程化高,语言的执行由系统自动完成。(4)所有的)所有的T-SQL语言可以

2、在查询分析器中编辑、调试和语言可以在查询分析器中编辑、调试和运行。运行。5.1 Transact-SQL语言语言5.1 Transact-SQL语言语言5.1.1 数据类型(复习回顾)数据类型(复习回顾)1.整型整型(Bigint、Int、Smallint、tinyint)整型数参与任何算术运算的结果只保留数值的整数部分。整型数参与任何算术运算的结果只保留数值的整数部分。2.浮点型浮点型(float、real、Decimal、Numerc)float和和real属于近似数据类型。特点是表示范围大属于近似数据类型。特点是表示范围大,但任何一但任何一个数都仅是一个近似值。适合用于科学计算。个数都仅

3、是一个近似值。适合用于科学计算。Decimal和和Numerc是精确数值类型,表示的是一个精确值。适是精确数值类型,表示的是一个精确值。适合用于财务金融(如:工资)。合用于财务金融(如:工资)。注:最好在注:最好在WHERE子句中不要引用子句中不要引用float类型的字段。类型的字段。3.字符型字符型 Char、Varchar、Text、Nchar、varchar、Ntext(双字节字符型)。(双字节字符型)。5.1 Transact-SQL语言语言转数据类型4.Unicode Unicode(统一码、万国码、单一码)是一种在计算机上使(统一码、万国码、单一码)是一种在计算机上使用的字符编码。

4、用的字符编码。5.日期时间型日期时间型Datetime、Smalldatetime6.货币数据类型货币数据类型 Money、SmallMoney相当于带货币符号的相当于带货币符号的Decimal类型。精确到类型。精确到0.0001货币单位。货币单位。7.Bit位类型(也称位类型(也称 逻辑类型)逻辑类型)可以取值为可以取值为 1、0 整数数据类型。用整数数据类型。用0表示表示false,1表示表示true。8.二进制类型(二进制类型(Binary、Varbinary、image)存储二进制数据。常用于存储音频视频图像等字节流式数据。存储二进制数据。常用于存储音频视频图像等字节流式数据。数据表字

5、段中仅存放指针,指向数据实际存放地址。数据表字段中仅存放指针,指向数据实际存放地址。5.1 Transact-SQL语言语言SQL-Server 2012的系统数据类型:的系统数据类型:1.精确数字精确数字2.进似数字进似数字3.日期和时间日期和时间4.字符串字符串5.Unicode字符串字符串6.二进制字符串二进制字符串7.其他数据类型其他数据类型 8.CLR数据类型数据类型9.空间数据类型空间数据类型5.1 Transact-SQL语言语言5.1.2 标识符、变量和运算符标识符、变量和运算符1.标识符标识符 标识符是指用户定义的数据库对象的名称以及变量名称。标识符是指用户定义的数据库对象的

6、名称以及变量名称。命名规则命名规则:长度为长度为1128个字符个字符,不区分大小写字母。可由:不区分大小写字母。可由:汉字、字母、数字、汉字、字母、数字、_、$、#字符构成。字符构成。以符号开头的标识符有专门的用途:以符号开头的标识符有专门的用途:以以开始的标识符,表示局部变量或参数。开始的标识符,表示局部变量或参数。以以#开始的标识符,表示是局部数据库对象。开始的标识符,表示是局部数据库对象。例如,局部临时表或过程等。例如,局部临时表或过程等。5.1 Transact-SQL语言语言2.变量变量 变量分为局部变量和全局变量。变量分为局部变量和全局变量。(1)局部变量局部变量 用户定义用户定义

7、,在在DECLARE语句中声明语句中声明在在SET或或SELECT语句中赋值语句中赋值局部变量声明局部变量声明格式格式:DECLARE 变量名变量名 数据类型数据类型,变量名变量名 数据类型数据类型以以开始的标识符,表示全局变量或参数开始的标识符,表示全局变量或参数以两个以两个#开始的标识符,表示全局临时对象。开始的标识符,表示全局临时对象。示例:示例:DECLARE x INT,y INT5.1 Transact-SQL语言语言局部变量赋值格式局部变量赋值格式2:SELECT 变量名变量名1=表达式表达式1,变量名变量名2=表达式表达式 -一条语句为多个变量赋值一条语句为多个变量赋值示例:示

8、例:SET X=12 SELECT X AS X的值的值注意:输出变量时可以用注意:输出变量时可以用 SELECT 变量变量示例:示例:SELECT X=12,Y=23 SELECT X AS X的值的值,Y AS Y的值的值5.1 Transact-SQL语言语言局部变量赋值格式局部变量赋值格式1:SET 变量名变量名1=表达式表达式 -一条语句只能给一个变量赋值一条语句只能给一个变量赋值 局部变量赋值格局部变量赋值格式式3:SELECT 变量名变量名1=字段表达式字段表达式1,变量名变量名2=字段表达式字段表达式2 FROM 表名表名 WHERE 条件条件 -查询赋值,与查询语句结合查询赋

9、值,与查询语句结合使用使用注意:注意:当子查询结果为多个值时,保留最后那个值赋给变量。如果当子查询结果为多个值时,保留最后那个值赋给变量。如果“子查子查询询”没有返回值,则局部变量值为没有返回值,则局部变量值为NULL。一个一个SET语句只能为一个变量赋值,而一个语句只能为一个变量赋值,而一个SELECT语句可为多个语句可为多个变量赋值。变量赋值。5.1 Transact-SQL语言语言例例5-1-1:DECLARE age INT SELECT age=SAGE FROM S WHERE SDEPT=计算机计算机 SELECT age as 年龄年龄例例1:重新:重新 建立学生、课程、选课表

10、建立学生、课程、选课表例例5-1-2:定义一个变量:定义一个变量score,将选课表中的最高成绩赋值给,将选课表中的最高成绩赋值给它。它。Use studentDECLARE score int SELECT score=MAX(grade)FROM scSELECT score AS 最高成绩最高成绩 5.1 Transact-SQL语言语言 其他其他Transact-SQL语句还有:语句还有:(1)/*/:注释语句,注释语句,用于多行注释用于多行注释(2)-(注释语句注释语句):用于单行或嵌套注释用于单行或嵌套注释(3)PRINT:终端输出语句终端输出语句格式格式:PRINT 文本字符串文

11、本字符串/字符数据类型变量字符数据类型变量/返回字符串结返回字符串结果的函数果的函数/字符串表达式字符串表达式功能功能:将用户定义的消息返回客户端。必须是将用户定义的消息返回客户端。必须是 char 或或 varchar,或者能够隐式转换为这些数据类型。,或者能够隐式转换为这些数据类型。示例:示例:PRINT ABCDEFG5.1 Transact-SQL语言语言例例5-1-3:定义变量:定义变量score、sno、cno,类型分别为类型分别为 int、char(4)、char(4),并赋值给它们。并赋值给它们。DECLARE score int,sno char(4)DECLARE cno

12、char(4)-变量声明变量声明SELECT sno=s1,cno=c2 -变量赋值变量赋值 SELECT score=grade -查询赋值查询赋值 FROM sc WHERE sno=sno and cno=cnoSELECT score AS 成绩成绩 -查询变量值查询变量值5.1 Transact-SQL语言语言(2)全局变量全局变量 系统提供、系统赋值系统提供、系统赋值 只报告系统活动信息和连接信息只报告系统活动信息和连接信息 可以在脚本中引用可以在脚本中引用全局变量由全局变量由SQL Server系统定义和维护,用户不能给全局系统定义和维护,用户不能给全局变量赋值或直接更改其中的值

13、。变量赋值或直接更改其中的值。全局变量的名字前有两个全局变量的名字前有两个,即即。全局变量对于检查全局变量对于检查SQL Server环境的某些信息或条件是有环境的某些信息或条件是有用的。用的。示例:查看示例:查看SQL Server版本号。版本号。SELECT version5.1 Transact-SQL语言语言3.运算符运算符 (复习回顾)(复习回顾)运算符的类型:运算符的类型:算术运算符算术运算符 比较运算符比较运算符 字符串连接运算符字符串连接运算符 逻辑运算符逻辑运算符(1)算术运算符:算术运算符:+、-、*、/、%(求余求余)(2)比较运算符比较运算符:=、!=、=、=、!5.1

14、 Transact-SQL语言语言(3)字符串连接运算符:。字符串连接运算符:。例:例:print asd+dfg+1234 结果为:结果为:asddfg1234 空串空串()作为单个空格处理。作为单个空格处理。例:例:abc+efg,结果为,结果为abc egf.(4)逻辑运算符逻辑运算符 运算符运算符含义含义ALL如果一系列的比较都为如果一系列的比较都为True,则为,则为True。AND逻辑与逻辑与ANY如果一系列的比较中任何一个为如果一系列的比较中任何一个为True,则为,则为True。BETWEEN如果操作数在某个范围之内,则为真如果操作数在某个范围之内,则为真5.1 Transac

15、t-SQL语言语言运算符运算符含义含义EXISTS如果子查询不为空,则为如果子查询不为空,则为TrueIN(集合集合)如果操作数在集合中,则为真如果操作数在集合中,则为真LIKE如果操作数与某个字符串匹配,则为真如果操作数与某个字符串匹配,则为真NOT逻辑非逻辑非OR逻辑或逻辑或SOME与与ANY一样一样(5)运算符优先级运算符优先级 由高到低为:由高到低为:括号括号算术运算符算术运算符(字符串连接符字符串连接符)比较运算符比较运算符逻辑运算符逻辑运算符赋值赋值 5.1 Transact-SQL语言语言5.1.3 函数函数SQL Server提供了非常丰富的函数供用户使用,同时也允许提供了非常

16、丰富的函数供用户使用,同时也允许用户定义自己的函数。用户定义自己的函数。1.Transact-SQL提供的系统函数提供的系统函数:字符函数字符函数(1)SUBSTRING 函数函数格式:格式:SUBSTRING(,)功能:从字符表达式中的第功能:从字符表达式中的第m个字符开始截取个字符开始截取n个字符,形个字符,形成一个新字符串,成一个新字符串,m,n都是数值表达式。都是数值表达式。注意:系统函数注意:系统函数用用SELECT 函数名(参数)进行调用函数名(参数)进行调用(2)LTRIM函数函数格式:格式:LTRIM()功能:删除字符串起始空格函数,返回功能:删除字符串起始空格函数,返回var

17、char类型数据类型数据5.1 Transact-SQL语言语言(3)RTRIM函数函数格式:格式:RTRIM()功能:删除字符串尾随空格函数,返回功能:删除字符串尾随空格函数,返回varchar类型数据。类型数据。(4)RIGHT函数函数格式:格式:RIGHT(,)功能:返回字符串中从右边开始指定个数的字符,返回功能:返回字符串中从右边开始指定个数的字符,返回varchar类型数据。类型数据。(5)LEFT函数函数格式:格式:LEFT(,)功能:返回字符串中从左边开始指定个数的字符,返回功能:返回字符串中从左边开始指定个数的字符,返回varchar类型数据。类型数据。5.1 Transact

18、-SQL语言语言(6)UPPER函数函数格式:格式:UPPER()功能:将小写字符数据转换为大写的字符表达式,返回功能:将小写字符数据转换为大写的字符表达式,返回varchar类型数据。类型数据。(7)LOWER函数函数格式:格式:LOWER()功能:将大写字符数据转换为小写的字符表达式,返回功能:将大写字符数据转换为小写的字符表达式,返回varchar类型数据。类型数据。(8)REVERSE函数函数格式:格式:REVERSE()功能:返回字符表达式的反转。返回功能:返回字符表达式的反转。返回varchar类型数据。类型数据。5.1 Transact-SQL语言语言(9)SPACE函数函数格式

19、:格式:SPACE()功能:返回由重复的空格组成的字符串。整数表达式的值表示功能:返回由重复的空格组成的字符串。整数表达式的值表示空格个数。返回空格个数。返回char类型数据。类型数据。(10)STUFF函数函数格式:格式:STUFF(字符表达式字符表达式1,m,n,字符表达式字符表达式2)功能:删除指定长度的字符并在指定的起始点插入另一组字符。功能:删除指定长度的字符并在指定的起始点插入另一组字符。m,n是整数,是整数,m指定删除和插入的开始位置指定删除和插入的开始位置,n指定要删除的字指定要删除的字符数符数,最多删除到最后一个字符。如果最多删除到最后一个字符。如果m或或n 是负数,则返回空

20、是负数,则返回空字符串。如果字符串。如果m比字符表达式比字符表达式1 长,则返回空字符串。返回长,则返回空字符串。返回char类型数据。类型数据。5.1 Transact-SQL语言语言(11)CHARINDEX函数函数格式:格式:CHARINDEX(表达式表达式1,表达式表达式2 ,m )功能:功能:在表达式在表达式2的第的第m个字符开始查找表达式个字符开始查找表达式1起始字符位置。起始字符位置。m是整数表达式,如果是整数表达式,如果m是负数或缺省,则将从表达式是负数或缺省,则将从表达式2 的起始位的起始位置开始搜索。返回置开始搜索。返回int类型数据。类型数据。(12)LEN函数函数格式:

21、格式:LEN(字符表达式字符表达式)功能:功能:返回给定字符串表达式的字符个数,不包含尾随空格。返回给定字符串表达式的字符个数,不包含尾随空格。(13)ASCII函数函数格式:格式:ASCII(字符表达式字符表达式)功能:功能:返回给定字符串表达式的最左端字符的返回给定字符串表达式的最左端字符的ASCII码值。返回码值。返回整型值。整型值。5.1 Transact-SQL语言语言(14)CHAR函数函数格式:格式:CHAR(整数表达式整数表达式)功能:功能:用于将用于将ASCII码转换为字符,整数表达式的取值范围为码转换为字符,整数表达式的取值范围为0到到255之间的整数,返回字符型数据值。之

22、间的整数,返回字符型数据值。5.1 Transact-SQL语言语言数学函数数学函数(1)ABS函数函数格式:格式:ABS(数字表达式数字表达式)功能:功能:返回给定数字表达式的绝对值。返回给定数字表达式的绝对值。(2)EXP函数函数格式:格式:EXP(数字表达式数字表达式)功能:功能:返回给定数字表达式的指数值。参数数字表达式是返回给定数字表达式的指数值。参数数字表达式是 float 类型的表达式。返回类型为类型的表达式。返回类型为float。(3)SQRT函数函数格式:格式:SQRT(数字表达式数字表达式)功能:功能:返回给定数字表达式的平方根。参数数字表达式是返回给定数字表达式的平方根。

23、参数数字表达式是 float 类型的表达式。返回类型为类型的表达式。返回类型为float。5.1 Transact-SQL语言语言(4)ROUND函数函数格式:格式:ROUND(数字表达式,数字表达式,m)功能:返回返回数字表达式并四舍五入为指定的长度或精度。功能:返回返回数字表达式并四舍五入为指定的长度或精度。(5)RAND函数函数格式:格式:RAND(seed)功能:返回功能:返回 0 到到1 之间的随机之间的随机float 值。参数值。参数seed为整型表达式。为整型表达式。5.1 Transact-SQL语言语言日期和时间函数日期和时间函数(1)DATEADD函数函数格式:格式:DAT

24、EADD(日期参数日期参数,数字数字,日期日期)功能:功能:在向指定日期加上一段时间的基础上,返回新的在向指定日期加上一段时间的基础上,返回新的 datetime 值。日期参数规定了新值的类型。参数有:值。日期参数规定了新值的类型。参数有:Year、Month、Day、Week、Hour(2)GETDATE函数函数格式:格式:GETDATE()功能:返回系统当前日期时间。功能:返回系统当前日期时间。5.1 Transact-SQL语言语言(3)DAY函数函数格式:格式:DAY(日期日期)功能:返回代表指定日期的功能:返回代表指定日期的“日日”部分的整数。返回类型为部分的整数。返回类型为int。

25、(4)YEAR函数函数格式:格式:YEAR(日期日期)功能:返回表示指定日期中的年份的整数。返回类型为功能:返回表示指定日期中的年份的整数。返回类型为int。(5)MONTH函数函数格式:格式:MONTH(日期日期)功能:返回表示指定日期中的月份的整数。返回类型为功能:返回表示指定日期中的月份的整数。返回类型为int。5.1 Transact-SQL语言语言数据转换函数数据转换函数(1)CAST函数函数格式:格式:CAST(表达式表达式 AS 数据类型数据类型)功能:功能:将指定的表达式转换成对应的数据类型。将指定的表达式转换成对应的数据类型。(2)CONVERT函数函数格式:格式:CONVE

26、RT(数据类型数据类型(长度长度),表达式表达式,样式样式)功能:样式是指日期格式样式。功能:样式是指日期格式样式。系统函数系统函数函数函数DB_NAME()的功能是返回数据库的名称。的功能是返回数据库的名称。函数函数HOST_ NAME()的功能是返回服务器端计算机的名称。的功能是返回服务器端计算机的名称。函数函数HOST_ID()的功能是返回服务器端计算机的的功能是返回服务器端计算机的ID号。号。函数函数USER_NAME()的功能是返回用户的数据库用户名。的功能是返回用户的数据库用户名。5.1 Transact-SQL语言语言2.用户自定义函数用户自定义函数用户可以根据应用需要定义自己的

27、函数。用户可以根据应用需要定义自己的函数。自定义函数分三种自定义函数分三种:标量函数、内嵌表值函数标量函数、内嵌表值函数、多语句表、多语句表值函数。值函数。(1)标量函数)标量函数标量函数指函数返回单个值标量函数指函数返回单个值(字符串字符串/数值等数值等)。函数定义语法格式:函数定义语法格式:CREATE FUNCTION 拥有者拥有者.函数名函数名 -定义有意义函数名定义有意义函数名 (形参名形参名1AS数据类型数据类型1=默认值默认值,n)RETURNS 函数返回值数据类型函数返回值数据类型 -注意是返回数据类型注意是返回数据类型ASBEGIN 函数体函数体 RETURN 返回值表达式返

28、回值表达式 -返回数据的表达式返回数据的表达式END5.1 Transact-SQL语言语言例例5-1-4:创建一个标量函数,返回某学生的平均分数。学号作为函创建一个标量函数,返回某学生的平均分数。学号作为函数参数。数参数。CREATE FUNCTION get_avg (sno char(4)RETURNS int ASBEGIN DECLARE temp int SELECT temp=AVG(grade)FROM sc WHERE sno=sno RETURN temp END功能:函数可以声明一个或多个形参(最多功能:函数可以声明一个或多个形参(最多1024个),执行函个),执行函数时

29、,需要提供形参的值,除非该形参定义了默认值,调用数时,需要提供形参的值,除非该形参定义了默认值,调用时时函数名函数名(DEFAULT),获得默认值。函数体由一组,获得默认值。函数体由一组SQL语句组成。语句组成。5.1 Transact-SQL语言语言函数的调用函数的调用:在在SELECT语句中调用语句中调用格式:格式:SELECT 拥有者拥有者.函数名(实参函数名(实参1,实参实参n)说明:实参可为已赋值的局部变量或表达式。实参与形参要说明:实参可为已赋值的局部变量或表达式。实参与形参要顺序一致。顺序一致。示例:示例:SELECT dbo.get_avg(s1)AS s1平均成绩平均成绩注注

30、意意:调用时必须给出用户名:调用时必须给出用户名dbo。它是函数创建者。它是函数创建者。使用使用EXEC语句调用语句调用 (在讲存储过程后)(在讲存储过程后)格式格式1:EXEC 拥有者拥有者.函数名函数名 实参实参1,实参实参n 示例示例:declare a int EXEC a=dbo.get_avg s1 select a as 平均成绩平均成绩5.1 Transact-SQL语言语言格式格式2:EXEC 拥有者拥有者.函数名函数名 形参形参1=实参实参1,形参形参n=实参实参n 说明:格式说明:格式1要求实参与形参顺序一致,格式要求实参与形参顺序一致,格式2的参数顺序可与定的参数顺序可

31、与定义时的参数顺序不一致。义时的参数顺序不一致。示例:示例:declare a int EXEC a=dbo.get_avg sno=s1 select a as 平均成绩平均成绩5.1 Transact-SQL语言语言(2)内嵌表值函数)内嵌表值函数 内嵌表值函数指内嵌表值函数指 函数返回值是一个表函数返回值是一个表.函数定义语法格式:函数定义语法格式:CREATE FUNCTION 函数名函数名 -定义有意义函数名定义有意义函数名 (参数名参数名1AS数据类型数据类型1=默认值默认值,n)RETURNS TABLE -注意是注意是返回返回ASRETURN SELECT查询语句查询语句 内嵌

32、表值函数,返回值是一个表。内嵌函数体没有相关联的内嵌表值函数,返回值是一个表。内嵌函数体没有相关联的返回变量。通过返回变量。通过SELECT语句返回内嵌表。语句返回内嵌表。5.1 Transact-SQL语言语言例例5-1-5:创建一个表值函数,返回平均分数大于或等于指定分数:创建一个表值函数,返回平均分数大于或等于指定分数的学生学号和平均分数。函数参数为给定的一个的学生学号和平均分数。函数参数为给定的一个“分数分数”。CREATE FUNCTION get_all_avg (score int)RETURNS TABLE ASRETURN SELECT sno,AVG(grade)AS 平均

33、成绩平均成绩 FROM sc GROUP BY sno HAVING AVG(grade)=score注意:表达式注意:表达式AVG(grade)必须给出别名。必须给出别名。5.1 Transact-SQL语言语言内嵌表值函数调用格式:内嵌表值函数调用格式:SELECT FROM 拥有者拥有者.内嵌表值函数内嵌表值函数(实参实参1,实参实参n)说明:内嵌表值函数只能使用说明:内嵌表值函数只能使用SELECT语句调用。语句调用。例例5-1-6:查询平均成绩大于:查询平均成绩大于60分的学生的学号。分的学生的学号。SELECT *FROM dbo.get_all_avg(60)例例5-1-7:查询

34、平均成绩大于:查询平均成绩大于80分的学生的学号,姓名信息。分的学生的学号,姓名信息。SELECT s.sno,sname,平均成绩平均成绩FROM get_all_avg(80),s WHERE get_all_avg.sno=s.sno 5.1 Transact-SQL语言语言(3)多语句表值函数多语句表值函数定义格式:定义格式:CREATE FUNCTION 拥有者拥有者.函数名函数名(参数名参数名1AS数据类型数据类型1=默认值默认值,n)RETURNS 表变量表变量 TABLE WITH ,n AS BEGIN函数体函数体RETURN END说明:说明:函数体由一组在表变量中插入记录

35、行的语句组成函数体由一组在表变量中插入记录行的语句组成。5.1 Transact-SQL语言语言示例:示例:CREATE FUNCTION get_all_avg1 (score int)RETURNS a TABLE(学号学号 char(6),平均成绩平均成绩 int)ASbegin insert a SELECT sno,AVG(grade)AS 平均成绩平均成绩 FROM sc GROUP BY sno HAVING AVG(grade)=scorereturnEnd示例:查询平均成绩大于示例:查询平均成绩大于60分的学生信息。分的学生信息。SELECT *FROM dbo.get_al

36、l_avg1(60)5.1 Transact-SQL语言语言(4)删除用户自定义函数删除用户自定义函数 格式:格式:DROP FUNCTION 函数名函数名(5)修改用户自定义函数修改用户自定义函数 格式:格式:ALTER FUNCTION 函数名函数名 参数定义与代码参数定义与代码5.1 Transact-SQL语言语言 小结小结1.T-SQL语言元素语言元素2.赋值语句赋值语句3.常用函数、自定义函数常用函数、自定义函数 5.1 Transact-SQL语言语言 本节结束本节结束预习准备预习准备 实验八实验八查阅查阅 T-SQL语言控制语句语言控制语句5.1 Transact-SQL语言语

37、言5.1.4 流程控制语句流程控制语句 流程控制语句用于控制流程控制语句用于控制SQL语句、语句块、存储过程或触语句、语句块、存储过程或触发器的执行流程。发器的执行流程。主要的流程控制语句有:主要的流程控制语句有:语句语句功能功能BEGINEND定义语句块定义语句块BREAK退出循环退出循环CONTINUE重新开始循环重新开始循环GOTO label转移到标号转移到标号label处继续执行处继续执行IFELSE选择语句选择语句RETURN无条件返回语句无条件返回语句WAITFOR为语句执行设置延迟时间为语句执行设置延迟时间WHILE循环语句循环语句CASE 表达式表达式实现多分支实现多分支5.

38、1 Transact-SQL语言语言1.BEGIN END语句语句 该语句将多条该语句将多条SQL语句封装在一起,构成一个语句块。主语句封装在一起,构成一个语句块。主要语句块就可以在要语句块就可以在IF/ELSE、WHILE等语句中作为一个整等语句中作为一个整体来执行。体来执行。语法格式:语法格式:BEGIN 若干若干SQL语句语句END 功能:功能:BEGIN.END 语句将多个语句将多个SQL 语句组合成一组语句语句组合成一组语句块,并将些语句块视为一个单元。块,并将些语句块视为一个单元。BEGIN.END 语句块允语句块允许嵌套。许嵌套。5.1 Transact-SQL语言语言2.IFE

39、LSE语句语句 语法格式:语法格式:IF 条件条件 语句语句/语句块语句块1 ELSE 语句语句/语句块语句块2 功能:功能:IF.ELSE语句是双分支条件判断语句,根据某个条语句是双分支条件判断语句,根据某个条件的成立与否,来决定执行哪组语句。如果省略件的成立与否,来决定执行哪组语句。如果省略ELSE,则,则为单分支语句。为单分支语句。5.1 Transact-SQL语言语言例例5-1-8:输出至少有一门课程的成绩大于:输出至少有一门课程的成绩大于90的学生的人数,如的学生的人数,如果没有,则不显示。果没有,则不显示。DECLARE num intSELECT num=(SELECT COU

40、NT(DISTINCT SNO)FROM SC WHERE GRADE90)IF num0SELECT num AS 成绩大于成绩大于90的人数的人数5.1 Transact-SQL语言语言例例5-1-9:查询选修:查询选修c1课的学生成绩,如有大于课的学生成绩,如有大于90分以上的,则分以上的,则将其姓名显示出来;若无人大于将其姓名显示出来;若无人大于90分,则显示分,则显示“成绩优秀者成绩优秀者为为0个个”。IF EXISTS(SELECT*FROM sc WHERE cno=c1 AND grade90)SELECT sname FROM s,sc WHERE s.sno=sc.sno

41、AND cno=c1 AND grade=90ELSE PRINT 成绩优秀者为成绩优秀者为0个个 5.1 Transact-SQL语言语言3.WHILE语句语句语法格式:语法格式:WHILE 条件条件 SQL语句语句/语句块语句块 BREAK SQL语句语句/语句块语句块 CONTINUE 1)当条件为真时,重复执行)当条件为真时,重复执行 SQL 语句或语句块,直到条件为假。语句或语句块,直到条件为假。可以使用可以使用 BREAK 和和 CONTINUE 语句改变语句改变WHILE 循环的执行。循环的执行。2)END 关键字为循环结束标记。关键字为循环结束标记。BREAK语句可以完全退出本

42、层语句可以完全退出本层WHILE循环,执行循环,执行END后面的语句。后面的语句。3)CONTINUE语句回到循环的第一行命令,重新开始循环语句回到循环的第一行命令,重新开始循环5.1 Transact-SQL语言语言例例5-1-10:引用已建函数引用已建函数get_all_avg,分别求出平均成绩大于,分别求出平均成绩大于60、70、80、90的学生成绩信息。的学生成绩信息。DECLARE j intSET j=60WHILE j100BEGIN SELECT*,j as 平均成绩大于平均成绩大于 FROM get_all_avg(j)SET j=j+10END5.1 Transact-SQ

43、L语言语言4.CASE 表达式表达式CASE 表达式用于多分支结构,有两种语法格式。表达式用于多分支结构,有两种语法格式。(1)简单简单CASE表达式表达式格格式:式:CASE 表达式表达式WHEN 表达式表达式1 THEN 结果表达式结果表达式1 WHEN 表达式表达式n THEN 结果表达式结果表达式nELSE 结果表达式结果表达式n+1END说明:说明:可以是常量、属性名、函数、子查询和算术运算符、字符串运算可以是常量、属性名、函数、子查询和算术运算符、字符串运算符等组合的有意义的式子。符等组合的有意义的式子。执行过程:执行过程:计算表达式的值。按书写顺序计算表达式计算表达式的值。按书写

44、顺序计算表达式1的值,如果的值,如果 表达式表达式=表达式表达式1,返回结果表达式返回结果表达式1,否则,继续计算表达式,否则,继续计算表达式2的值,如果表达式的值,如果表达式=表达式表达式2,返回结果表达式,返回结果表达式2,以此类推。如果所有的,以此类推。如果所有的“表达式表达式=表达式表达式”为为FLASE,则返回,则返回ELSE 后的表达式后的表达式n+1;如果没有指定;如果没有指定 ELSE 子句,则返子句,则返回回 NULL 值。值。5.1 Transact-SQL语言语言例例5-1-11:将百分制分数按优、良、中、及格和不及格五个等级:将百分制分数按优、良、中、及格和不及格五个等

45、级记分制的形式输出。记分制的形式输出。SELECT sno,cno,grade,等级等级=CASE grade/10 WHEN 6 THEN 及格及格 WHEN 7 THEN 中中 WHEN 8 THEN 良良 WHEN 9 THEN 优优 WHEN 10 THEN 优优 ELSE 不及格不及格 END FROM SC说明:说明:整数除整数整数除整数得到整数得到整数(系统自动取整(系统自动取整)5.1 Transact-SQL语言语言(2)搜索型搜索型CASE表达式表达式格式:格式:CASEWHEN 条件表达式条件表达式1 THEN 结果表达式结果表达式1WHEN 条件表达式条件表达式n TH

46、EN 结果表达式结果表达式nELSE 结果表达式结果表达式n+1END说明:说明:按顺序计算每个按顺序计算每个 WHEN 子句的表达式。返回第一个使子句的表达式。返回第一个使逻辑表达式为逻辑表达式为 TRUE的的 结果表达式。结果表达式。如果所有的表达式为如果所有的表达式为FLASE,则返回,则返回ELSE 后的结果表达式后的结果表达式n;如果没有指定;如果没有指定 ELSE 子句,则返回子句,则返回 NULL 值。值。5.1 Transact-SQL语言语言例例5-1-12:将百分制分数按优、良、中、及格和不及格五个等级:将百分制分数按优、良、中、及格和不及格五个等级记分制的形式输出。记分制

47、的形式输出。SELECT sno,cno,grade=CASE WHEN grade/10=6 THEN 及格及格 WHEN grade/10=7 THEN 中中 WHEN grade/10=8 THEN 良良 WHEN grade/10=9 THEN 优优 WHEN grade/10=10 THEN 优优 WHEN grade/10 IS NULL THEN 无成绩无成绩 ELSE 不及格不及格 ENDFROM sc5.1 Transact-SQL语言语言例例5-12:把上例的结果生成一个新表:把上例的结果生成一个新表SCDJSELECT sno,cno,grade,等级等级=CASE WH

48、EN grade=90 THEN 优秀优秀 WHEN grade=80 THEN 良良 WHEN grade=70 THEN 中中 WHEN grade=60 THEN 及格及格 WHEN grade IS NULL THEN 无成绩无成绩 ELSE 不及格不及格 END INTO SCDJFROM SC5.1 Transact-SQL语言语言4.WAITFOR语句语句WAITFOR语句可以指定在某一时间点或时间间隔后执行语句可以指定在某一时间点或时间间隔后执行SQL语句、语句块、存储过程或事务。语句、语句块、存储过程或事务。语法格式:语法格式:WAITFOR DELAY time|TIME

49、time time 格式为:格式为:hh:mm:ss。5.1 Transact-SQL语言语言示例:对学生选课关系示例:对学生选课关系(1)设置在设置在9:00执行一次查询操作;执行一次查询操作;(2)再设置在再设置在1分钟以后再执行一次查询操作,查看学生选课情分钟以后再执行一次查询操作,查看学生选课情况。况。BEGIN WAITFOR TIME 9:00 -等到等到9点点 SELECT sno,cno FROM scENDBEGIN WAITFOR DELAY 00:01-延迟延迟1分钟分钟 SELECT sno,cno FROM scEND5.1 Transact-SQL语言语言5.RET

50、URN语句语句RETURN无条件退出语句。可在任何时候用于从过程、批无条件退出语句。可在任何时候用于从过程、批处理或语句块中退出。不执行位于处理或语句块中退出。不执行位于 RETURN 之后的语句。之后的语句。格式格式:RETURN 整数表达式整数表达式 RETURN语句可以返回整数值。一般用于表示存储过程或应用程语句可以返回整数值。一般用于表示存储过程或应用程序的执行状态。如,所有系统存储过程返回序的执行状态。如,所有系统存储过程返回 0 值表示成功,返值表示成功,返回非零值则表示失败。回非零值则表示失败。注意注意:当用于存储过程时,:当用于存储过程时,RETURN 不能返回空值。不能返回空

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|