授课15-数据库查询与维护3T-SQL程序设计ppt课件_第1页
授课15-数据库查询与维护3T-SQL程序设计ppt课件_第2页
授课15-数据库查询与维护3T-SQL程序设计ppt课件_第3页
授课15-数据库查询与维护3T-SQL程序设计ppt课件_第4页
授课15-数据库查询与维护3T-SQL程序设计ppt课件_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、授授课课15-T-SQL15-T-SQL程序程序设计设计授课15-数据库查询与维护_3 (T-SQL程序设计)13.1 Transact-SQL13.1 Transact-SQL言语根底言语根底13.2 13.2 批处置与程序流程控制语句批处置与程序流程控制语句13.3 13.3 系统内置函数系统内置函数13.4 13.4 用户自定义函数用户自定义函数授授课课15-T-SQL15-T-SQL程序程序设计设计【义务实验【义务实验2121】 程序控制流程语句的运用程序控制流程语句的运用实验内容实验内容: :p279-p280p279-p280授授课课15-T-SQL15-T-SQL程序程序设计设计

2、13.1 Transact-SQL言语语根底13.1.1 13.1.1 标识符标识符13.1.2 13.1.2 常量常量13.1.3 13.1.3 变量变量13.1.4 13.1.4 运算符与表达式运算符与表达式13.1.5 13.1.5 注释注释授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.1 标识符1 1常规标识符常规标识符常规标识符应符合如下规那么:常规标识符应符合如下规那么:1 1第一个字符必需是以下字符之一:第一个字符必需是以下字符之一: ASCII ASCII字符、字符、UnicodeUnicode字符、下划线字符、下划线 (_) (_)、或、或# #。2 2后

3、续字符可以是:后续字符可以是:ASCIIASCII字符、字符、UnicodeUnicode字符、字符、下划线下划线 (_) (_)、美圆符号、美圆符号 ($) ($)或数字符号。或数字符号。3 3标识符不能是标识符不能是 Transact-SQL Transact-SQL 的保管字。的保管字。4 4不允许嵌入空格或其它特殊字符。不允许嵌入空格或其它特殊字符。授授课课15-T-SQL15-T-SQL程序程序设计设计 (5) (5) 以符号开场的标识符称号具有的特殊用途如下所述。以符号开场的标识符称号具有的特殊用途如下所述。 以以 符号开场的标识符表示部分变量或参数。符号开场的标识符表示部分变量或

4、参数。 以以 双符号开场的标识符表示全局变量。双符号开场的标识符表示全局变量。 以数字标志以数字标志# #符号开场的标识符表示暂时表或过程。符号开场的标识符表示暂时表或过程。 以数字标志以数字标志#双符号开场的标识符表示全局暂时对象。双符号开场的标识符表示全局暂时对象。授授课课15-T-SQL15-T-SQL程序程序设计设计2 分隔标识符 假设标识符服从标识符格式的一切规那么,那么既可以运用分隔符,也可以不运用分隔符。对不符合标识符的格式规那么的标识符必需进展分隔。(1) 分隔标识符类型有以下两种。 被援用的标识符用双引号(“)分隔开。 括在括号中的标识符用方括号( )分隔。分隔标识符运用例如

5、:SELECT * FROM Blanks In Table NameSELECT * FROM Blanks in Table Name13.1.1 标识符授授课课15-T-SQL15-T-SQL程序程序设计设计 (2) (2) 分隔标识符的格式规那么如下所述。分隔标识符的格式规那么如下所述。 分隔标识符可以包含与常规标识符一样的字符数分隔标识符可以包含与常规标识符一样的字符数(1(1128 128 个,不包括分隔符字符个,不包括分隔符字符) )。 标识符的主体可以包含当前代码页内字母标识符的主体可以包含当前代码页内字母( (分隔符本身除分隔符本身除外外) )的恣意组合。的恣意组合。(3)

6、(3) 分隔标识符在以下情况下运用。分隔标识符在以下情况下运用。 当在对象称号或对象称号的组成部分中运用保管字时,当在对象称号或对象称号的组成部分中运用保管字时,引荐不要运用保管关键字作为对象称号,可用分隔标识符援引荐不要运用保管关键字作为对象称号,可用分隔标识符援用对象直到可改动其称号。用对象直到可改动其称号。 当运用未被列为合法标识符的字符时,允许在分隔标识当运用未被列为合法标识符的字符时,允许在分隔标识符中运用当前代码页中的任何字符。符中运用当前代码页中的任何字符。授授课课15-T-SQL15-T-SQL程序程序设计设计援用SQL Server 对象 可以经过几种方法援用SQL Serv

7、er 对象。既可以指定对象的完好称号,也可以只指定对象的部分称号,让SQL Server 根据当前操作的上下文环境确定称号的其他部分。(1) 完全合法称号 SQL Server 对象的完好称号包括4个标识符:效力器称号、数据库称号、一切者称号和对象称号。其格式为: Server.database.owner.object 指定了一切4部分的对象称号被称为完全合法称号。SQL Server 中所创建的每一个对象必需具有独一的完全合法称号。例如,在同一个数据库中可以有两个称号为部门信息的表,只需是分属于不同的一切者即可。同样地,同一个表或视图中的列名也必需独一。授授课课15-T-SQL15-T-S

8、QL程序程序设计设计(2) (2) 部分指定称号部分指定称号 当援用一个对象时,不需求指定效力器、数据库和一切当援用一个对象时,不需求指定效力器、数据库和一切者,可以利用句点指出其位置从而省略限定符。者,可以利用句点指出其位置从而省略限定符。下面列出对象称号的有效格式:下面列出对象称号的有效格式: Server.database.owner.object Server.database.owner.object database.owner.object database.owner.object database.Object database.Object owner.object own

9、er.object object object假设创建一个对象时没有指定该称号的不同部分,假设创建一个对象时没有指定该称号的不同部分,SQL ServeSQL Server r 那么运用以下默许值。那么运用以下默许值。 效力器默以为本地效力器的当前实例。效力器默以为本地效力器的当前实例。 数据库默以为当前数据库。数据库默以为当前数据库。 一切者默以为指定数据库中与当前衔接的登录标识一切者默以为指定数据库中与当前衔接的登录标识(ID)(ID)相相对应的用户称号。对应的用户称号。授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.2 常量类类 型型说说 明明例例 如如整型常量整型常量

10、没有小数点和指数没有小数点和指数E60,-365,0 x12F(十六进制),(十六进制),10010(二进制)(二进制)实型常量实型常量定点表示定点表示浮点表示浮点表示15.63,-200.25+123E-3,-12E5ASCII字符串字符串常量常量单引号括起来单引号括起来学生学生,this is database,OBbaar(串中包含单引号)(串中包含单引号)Unicode字符串字符串常量常量前缀是大写字母前缀是大写字母“N”单引号括起来单引号括起来N学生学生,NHow do you! 日期时间常量日期时间常量单引号括起来单引号括起来6/5/06,10-12-06,19491001,10-

11、12-06 14:30:24货币型常量货币型常量以以“$”作为前缀的整型或作为前缀的整型或实型常量实型常量$450,$3130.2,-$45.56全局唯一标识全局唯一标识符符前缀前缀0 x单引号单引号()引起来引起来0 x6F9619FF13B136D011B42D00C04FC964FF6F9619FF-13B136-D011-B42D-00C04FC964FF指在程序运转过程中值不变的量。指在程序运转过程中值不变的量。授授课课15-T-SQL15-T-SQL程序程序设计设计常量常量1.1.字符串常量字符串常量 包含在单引号内,由字母数字字符包含在单引号内,由字母数字字符(a-z,A-Z,0

12、-9)(a-z,A-Z,0-9)及特殊字符及特殊字符( (如:!、如:!、) )组成组成. . 如:如:SQL Server 2000 SQL Server 2000 实例与运用实例与运用2.2.数值常量数值常量 包含以下内容包含以下内容: :二进制常量二进制常量 、bitbit常量、常量、integerinteger常量、常量、decimaldecimal常量、常量、floatfloat常常量量 、RealReal常量、常量、moneymoney常量、指定负数和正数。常量、指定负数和正数。3.3.日期常量日期常量 运用特定格式的字符日期值表示,并被单引号括起来运用特定格式的字符日期值表示,并

13、被单引号括起来如:如:1983123119831231、1976/04/231976/04/23、1414:3030:24244. uniqueidentifier4. uniqueidentifier常量:表全局独一标识符值的字符串常量:表全局独一标识符值的字符串授授课课15-T-SQL15-T-SQL程序程序设计设计常量:注:援用数值常量不用单引号,援用日期、字符串常量时需求加单引号授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.3 变量 常量和变量是程序设计中不可短少的元素。变量又分为部分变量和全局变量,部分变量是一个可以保管特定数据类型实例的对象,是程序中各种类型数据

14、的暂时存储单元,用在批处置内SQL语句之间传送数据。部分变量的作用域,只在声明它的批处置内,一旦批处置终了,部分变量自动消逝。全局变量是系统给定的特殊变量。授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.3 变量变量分类:变量分类:1 1部分变量部分变量用来存储指定数据类型的单个数据值对象。用来存储指定数据类型的单个数据值对象。 2 2全局变量全局变量由系统提供且预先声明的用来保管由系统提供且预先声明的用来保管SQL ServerSQL Server系统运转系统运转形状数据值的变量。形状数据值的变量。用于暂时存放数据,变量中的数据随着程序的运用于暂时存放数据,变量中的数据随着

15、程序的运转而变化。转而变化。 变量对应于内存中的一个存储空间,值在程序运转过程中变量对应于内存中的一个存储空间,值在程序运转过程中可以随时改动。可以随时改动。授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.3 变量1 1部分变量部分变量1 1部分变量的定义部分变量的定义在批处置或存储过程中用在批处置或存储过程中用DECLAREDECLARE语句声明部分变量,一切语句声明部分变量,一切部分变量在声明后均初始化为部分变量在声明后均初始化为NULLNULL。语法格式:语法格式:DECLARE local_variable data_type ,nDECLARE local_vari

16、able data_type ,n2 2部分变量的赋值部分变量的赋值当声明部分变量后,可用当声明部分变量后,可用SETSET或或SELECTSELECT语句给其赋值。语句给其赋值。 用用SETSET语句赋值语句赋值语法格式:语法格式:SET local_variable=expressionSET local_variable=expression用于暂时存放数据,变量中的用于暂时存放数据,变量中的 数据随着程序的运转而变化。数据随着程序的运转而变化。授授课课15-T-SQL15-T-SQL程序程序设计设计例例13.113.1创建部分变量,并赋值,然后输出变量。创建部分变量,并赋值,然后输出变

17、量。declare todayDate char(10),dispStr vadeclare todayDate char(10),dispStr varchar(20)rchar(20)set todayDate=getdate()set todayDate=getdate()set dispStr=set dispStr=今天的日期为今天的日期为: :print dispstr+todaydateprint dispstr+todaydateselect dispstr+todaydateselect dispstr+todaydatePRINTPRINT显示在显示在“ “音讯框,音讯框,

18、SELECTSELECT显示在显示在“ “网格框。网格框。授授课课15-T-SQL15-T-SQL程序程序设计设计例例13.213.2创建一个名为创建一个名为xbxb的部分变量,并在的部分变量,并在SelectSelect语句中语句中运用该部分变量查找表运用该部分变量查找表XSBXSB中一切女同窗的学号和姓名。中一切女同窗的学号和姓名。Use stubookUse stubookDeclare xb char(2)Declare xb char(2)Set xb=Set xb=女女 Select Select 学号学号, ,姓名姓名From xsbFrom xsbWhere Where 性别性

19、别=xb=xbGo Go 授授课课15-T-SQL15-T-SQL程序程序设计设计 用用SELECT语句赋值语句赋值语法格式:语法格式:SELECT local_variable=expression ,n例例13.313.3创建部分变量创建部分变量var1var1、var2var2,并运用查,并运用查询给变量赋值。询给变量赋值。授授课课15-T-SQL15-T-SQL程序程序设计设计Use stubookUse stubookDeclare var1 varchar(20),var2 varchar(20)Declare var1 varchar(20),var2 varchar(20)Se

20、lect var1=Select var1=姓名姓名, var2=, var2=院系院系from xsbfrom xsbwhere where 院系院系=计算机计算机Select var1, var2Select var1, var2gogo察看察看查询结查询结果,比果,比较运较运用用 Select Select 姓名姓名, ,院系院系 from xsb from xsb where where 院系院系=计计算机算机 的的结结果。果。授授课课15-T-SQL15-T-SQL程序程序设计设计阐明:1.1.部分变量部分变量 用户在程序中定义的变量,一次只能保管一个值,用户在程序中定义的变量,一次

21、只能保管一个值,仅在定义的程序范围内有效;仅在定义的程序范围内有效;Declare dispstr varchar(20)Declare dispstr varchar(20)Set dispstr=Set dispstr=这是一个部分变量援用出错的演示这是一个部分变量援用出错的演示 GoGo-批处置在这里终了,部分变量被去除。批处置在这里终了,部分变量被去除。Print dispstrPrint dispstrGoGo 授授课课15-T-SQL15-T-SQL程序程序设计设计阐明: 赋值:初值为空,可以运用赋值:初值为空,可以运用selectselect语句和语句和setset语句对部语句对

22、部分变量进展赋值。分变量进展赋值。 set set语句一次只能给一个部分变量赋值,语句一次只能给一个部分变量赋值,selectselect可可以给一个获多个赋值。以给一个获多个赋值。如:如:DECLARE var1 int,var2 moneyDECLARE var1 int,var2 moneySELECT var1=50,var2=$29.95SELECT var1=50,var2=$29.95SELECT var1,var2 SELECT var1,var2 授授课课15-T-SQL15-T-SQL程序程序设计设计实 例 1:编写计算两个整数之和的程序编写计算两个整数之和的程序DECLA

23、RE i tinyint,j tinyint,sum tinyint DECLARE i tinyint,j tinyint,sum tinyint 定义定义3 3个部分个部分变量变量 SET i=50 SET i=50 SET j=60 SET j=60 SELECT sum=i+j SELECT sum=i+j PRINT sum PRINT sum 显示显示sumsum变量的内容变量的内容可写成:可写成: DECLARE i tinyint,j tinyint,sum tinyint - DECLARE i tinyint,j tinyint,sum tinyint -定义定义3 3个部

24、分个部分变量变量 select i=50,j=60,sum=i+j select i=50,j=60,sum=i+j PRINT sum - PRINT sum -显示显示sumsum变量的内容变量的内容授授课课15-T-SQL15-T-SQL程序程序设计设计实例2打印打印xsccxscc表中有多少种类型的课程,要求声明部分变量,进表中有多少种类型的课程,要求声明部分变量,进展赋值,然后打印变量内容。展赋值,然后打印变量内容。DECLARE CKind varchar(50)DECLARE CKind varchar(50)Select CKind=Select CKind=在在xsccxsc

25、c表中有表中有+convert(varchar(3),(selec+convert(varchar(3),(select count(distinct t count(distinct 课程称号课程称号) from xscc)+) from xscc)+数据类型的课数据类型的课程程Print CkindPrint CkindConvert( data_type, expression)Convert( data_type, expression)将表达式显式地转换为另将表达式显式地转换为另一种数据类型一种数据类型授授课课15-T-SQL15-T-SQL程序程序设计设计部分变量留意:通常在以下几

26、种情况运用部分变量留意:通常在以下几种情况运用部分变量1.1.作为计数器计算循环执行的次数作为计数器计算循环执行的次数2.2.保管数据值以供流控制语句测试保管数据值以供流控制语句测试3.3.保管由存储过程前往代码前往的数据类型保管由存储过程前往代码前往的数据类型授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.3 变量授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.3 变量由系统提供且预先声明的用来保管由系统提供且预先声明的用来保管SQL ServerSQL Server系统运转形系统运转形状数据值的变量。状数据值的变量。名名 称称说说 明明connectio

27、ns返回当前服务器的连接数目返回当前服务器的连接数目rowcount返回上一条返回上一条T-SQL语句影响的数据行数语句影响的数据行数error返回上一条返回上一条T-SQL语句执行后的错误号语句执行后的错误号procid返回当前存储过程的返回当前存储过程的ID号号remserver返回登录记录中远程服务器的名字返回登录记录中远程服务器的名字spid返回当前服务器进程的返回当前服务器进程的ID标识标识version返回当前返回当前SQL Server服务器的版本和处理器服务器的版本和处理器类型类型language返回当前返回当前SQL Server服务器的语言服务器的语言授授课课15-T-SQ

28、L15-T-SQL程序程序设计设计全局变量 全局变量以开头,实践上是全局变量以开头,实践上是SQL ServerSQL Server的配置函数的配置函数也称配置函数,是系统定义的变量,以开头;用也称配置函数,是系统定义的变量,以开头;用户只能运用户只能运用授授课课15-T-SQL15-T-SQL程序程序设计设计全局变量利用全局变量查看利用全局变量查看SQL ServerSQL Server的版本、当前运用的言的版本、当前运用的言语、效力器及效力器称号。语、效力器及效力器称号。print print 所用所用SQL severSQL sever的版本信息的版本信息print versionpri

29、nt versionprint print print print 效力器称号为:效力器称号为: +servername +servernameprint print 所用的言语为:所用的言语为: +language +languageprint print 所用的效力为所用的效力为: +servicename: +servicenamegogo授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.4 运算符与表达式表达式可以是列名、字符、运算符或函数的恣意组合。表达式可以是列名、字符、运算符或函数的恣意组合。运算符用来指定要在一个或多个表达式中执行的操作。运算符用来指定要在一个或

30、多个表达式中执行的操作。运算符包含以下类型运算符包含以下类型: :算术运算符算术运算符+ +、* *、/ /、% %比较运算符比较运算符= =、 、 =、=、!=!=、!逻辑运算符逻辑运算符NOTNOT、OROR、ANDAND、ININ、LIKELIKE、BETWEENBETWEEN、EXISEXISTSTS、SOME SOME 、 ANY ANY、 ALL ALL字符串衔接运算符字符串衔接运算符赋值运算符赋值运算符= =位运算符位运算符& &、| |、 、 授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.4 运算符与表达式1算术运算符 算术运算符:加(+)、

31、减(-)、乘(*)、除(/)和取余(%),参与运算的数据是数值类型数据,其运算结果也是数值类型数据。2字符串衔接运算符 字符串衔接运算符(+)可以实现字符串之间的衔接。参与字符串衔接运算的数据只能是字符数据类型:char、varchar、nchar、nvarchar、text、ntext,其运算结果也是字符数据类型。授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.4 运算符与表达式3 3比较运算符比较运算符运运 算算 符符含含 义义=相等相等大于大于=大于等于大于等于=小于等于小于等于 、!=不等于不等于!不大于不大于授授课课15-T-SQL15-T-SQL程序程序设计设计1

32、3.1.4 运算符与表达式4 4逻辑运算符逻辑运算符 运 算 符运 算 规 则AND如果两个操作数值都为TRUE,运算结果为TRUEOR如果两个操作数中有一个为TRUE,运算结果为TRUENOT若一个操作数值为TRUE,运算结果为FALSEALL每个操作数值都为TRUE,运算结果为TRUEANY在一系列操作数中只要有一个为TRUE,运算结果为TRUEBETWEEN如果操作数在指定的范围内,运算结果为TRUEEXISTS如果子查询中包含一些行,运算结果为TRUEIN若操作数值等于表达式列表中的一个,结果为TRUELIKE若操作数与一种模式相匹配,运算结果为TRUESOME如果在一系列操作数中,有

33、些值为TRUE,结果为TRUE授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.4 运算符与表达式5 5运算符的优先级运算符的优先级运 算 符优 先 级+(正)、-(负)、(按位 NOT)1*(乘)、/(除)、%(模)2+(加)、(+ 串联)、-(减)3=、 =、 =、!=、!、! 比较运算符4(位异或)、&(位与)、|(位或)5NOT6AND7ALL、ANY、BETWEEN、IN、LIKE、OR、SOME8=(赋值)9授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.5 注释 脚本文件除了含有T-SQL语句外,还包含有对SQL语句进展阐明的注释。注释是

34、不能执行的文字字符串,或暂时禁用的部分语句。为程序加注释不仅能使程序易懂,更有助于日后的管理和维护。注释通常用于记录程序名、作者姓名和主要的程序更改日期,也用于描画复杂的计算或解释编程方法等。SQL Server支持两种方式的注释语句:行内注释与块注释。授授课课15-T-SQL15-T-SQL程序程序设计设计13.1.5 注释授授课课15-T-SQL15-T-SQL程序程序设计设计13.2 批处处置与与程序流程控制语语句13.2.1 13.2.1 批处置批处置13.2.2 13.2.2 流程控制语句流程控制语句授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.1 批处置 批处置

35、就是单个或多个批处置就是单个或多个Transact-SQLTransact-SQL语句语句的集合,由运用程序一次性发送给的集合,由运用程序一次性发送给SQL ServerSQL Server解解释并执行批处置内的一切语句指令。运用释并执行批处置内的一切语句指令。运用GOGO命命令和运用令和运用EXECUTEEXECUTE命令可以将批处置发送给命令可以将批处置发送给SQSQL ServerL Server。 1 1GOGO命令命令 GO GO命令本身不属于命令本身不属于Transact-SQLTransact-SQL语句。语句。 2 2EXECEXEC命令命令 EXEC EXEC命令用于执行用户

36、定义的函数以及存储命令用于执行用户定义的函数以及存储过程。过程。 授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.1 批处置批处置规律: 大多数create命令要在单个批处置中执行,但create database、create table、create index例外。批处置的特点一次发给数据库效力器的一切的SQL语句,由GO作为终了标志。编译成一个可执行单元执行方案执行时,每次执行方案中的一条语句特别留意:假设在一个批处置中,某条语句存在语法错误,SQL Server将不执行批处置中的任何语句。授授课课15-T-SQL15-T-SQL程序程序设计设计批处置实例查询分析器输

37、入如下指令:查询分析器输入如下指令:use studentuse studentgogocreate view testcreate view testas as select select * * from xsda from xsdagogoselect select * * from xscc from xsccgogo由于由于CREATE VIEW CREATE VIEW 建立视图建立视图语句不能和其他运用语句放在语句不能和其他运用语句放在同一个批处置中,所以需求同一个批处置中,所以需求G GO O命令将命令将CREATE VIEWCREATE VIEW语句语句与其下的语句与其下的语句

38、SELECTSELECT分成两分成两个批处置。否那么个批处置。否那么SQL ServSQL Serverer将报错。将报错。授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.2 流程控制语句 流控语句可以和T-SQL语句一同运用以控制程序流,可以在批内部运用流控语句,也可以在存储过程、脚本和特定的检索内部运用。运用实例:利用流控语句计算1+2+3+4+5+.+10000的和。 命令如下:DECLARE i int, sum int; SELECT i=1, sum=0 WHILE i=10000 BEGIN SELECT sum=sum+i SELECT i=i+1 END S

39、ELECT SUM GO 授授课课15-T-SQL15-T-SQL程序程序设计设计流控制语句流控制语句可以实现程序的3种根本构造: 顺序构造、选择构造、循环构造T-SQL提供的流控制如下:1复合语句包括一系列的 Transact-SQL 语句,称为语句块。语法格式:BEGIN sql_statement /*是任何有效的 Transact-SQL 语句 nEND 授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.2 流程控制语句2 2PRINTPRINT语句语句将用户定义的音讯前往客户端。将用户定义的音讯前往客户端。在屏幕上显示用户的信息以及在屏幕上显示用户的信息以及charc

40、har、varcharvarchar数据类型变数据类型变量的内容,其他数据类型必需先进展类型转换。量的内容,其他数据类型必需先进展类型转换。语法格式:语法格式:PRINT any ASCII text | local_variable | FUNCTION | PRINT any ASCII text | local_variable | FUNCTION | string_exprstring_expr授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.2 流程控制语句3 3判别语句判别语句IFELSEIFELSE 在程序中假设要对给定的条件进展断定,当条件为在程序中假设要对给

41、定的条件进展断定,当条件为真或假时分别执行不同的真或假时分别执行不同的T-SQLT-SQL语句,可用语句,可用IFELSEIFELSE语句语句实现。实现。语法格式:语法格式:IF boolean_expression IF boolean_expression / /* *条件表达式条件表达式 sql_statement|statement_block sql_statement|statement_block / /* *条件表达式为真时执行条件表达式为真时执行T-SQLT-SQL语句或语句块语句或语句块ELSEELSE sql_statement|statement_block sql_s

42、tatement|statement_block/ /* *条件表达式为假时执行条件表达式为假时执行T-SQLT-SQL语句或语句块语句或语句块授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.2 流程控制语句4 4循环语句循环语句WHILEWHILE、BREAKBREAK语句和语句和CONTINUECONTINUE语句语句1 1WHILEWHILE循环语句循环语句假设需求反复执行程序中的一部分语句,可运用假设需求反复执行程序中的一部分语句,可运用WHILEWHILE循环语句实现。循环语句实现。语法格式:语法格式:WHILE boolean_expressionWHILE bo

43、olean_expression sql_statement|statement_block / sql_statement|statement_block /* *T-SQLT-SQL语句或语句块构成的语句或语句块构成的循环体循环体2 2BREAKBREAK语句语句普通用在循环语句中,用于退出本层循环。当程序中有多层循环嵌套时,普通用在循环语句中,用于退出本层循环。当程序中有多层循环嵌套时,运用运用BREAKBREAK语句只能退出其所在的这一层循环。语句只能退出其所在的这一层循环。语法格式:语法格式:BREAKBREAK3 3CONTINUECONTINUE语句语句普通用在循环语句中,终了本

44、次循环,重新转到下一次循环条件的判别。普通用在循环语句中,终了本次循环,重新转到下一次循环条件的判别。语法格式:语法格式:CONTINUECONTINUE授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.2 流程控制语句USE pubsUSE pubsGO GO WHILE (SELECT AVG(price) FROM titles) $30 WHILE (SELECT AVG(price) FROM titles) $50 IF (SELECT MAX(price) FROM titles) $50 BREAK BREAK ELSE ELSE CONTINUE CONTIN

45、UE ENDENDPRINT Too much for the market to bear PRINT Too much for the market to bear 授授课课15-T-SQL15-T-SQL程序程序设计设计13.2.2 流程控制语句5RETURN语句 用于从过程、批处置或语句块中无条件退出,不执行位于RETURN之后的语句。 实现无条件退出批命令、存储过程或触发器。RETURN语句可以前往一个整数给调用它的过程或运用程序,前往不同的值阐明执行的不同情况。 前往0 阐明胜利前往前往-1-99代表不同的出错缘由前往-1指“丧失对象前往-2 指数据类型错误。语法格式:RETURN

46、 integer_expression 授授课课15-T-SQL15-T-SQL程序程序设计设计流控制语句6.GOTO语句 GOTOGOTO语句可以使程序直接跳到指定的标有标识符语句可以使程序直接跳到指定的标有标识符的位置处继续执行。的位置处继续执行。GOTOGOTO语句和标识符可以用在语句块、批处语句和标识符可以用在语句块、批处置和存储过程中,标识符可以为数字与字符的组合,置和存储过程中,标识符可以为数字与字符的组合,但必需以但必需以“ “:结尾。:结尾。GOTO labellabel:语法格式:语法格式:授授课课15-T-SQL15-T-SQL程序程序设计设计流控制语句利用GOTO语句求出

47、从1加到5的总和。declare sum int, count intselect sum=0, count=1label_1:select sum=sum+countselect count=count+1if count=5goto label_1select count , sum授授课课15-T-SQL15-T-SQL程序程序设计设计流控制语句7. WAITFOR语句 延迟或暂停程序的执行。语法方式为:WAITFOR DELAY 时间间隔或WAITFOR TIME 时间值 DELAY指示数据库效力器不断等待所指定的时间过去,最长可达24小时,TIME指示SQL Server等待到所指定

48、的时间 如:晚上8点执行语句SELECT * FROM Course WAITFOR TIME 20:00:00 SELECT * FROM Course授授课课15-T-SQL15-T-SQL程序程序设计设计13.3 系统内置函数13.3.1 13.3.1 数学函数数学函数13.3.2 13.3.2 字符串函数字符串函数13.3.3 13.3.3 日期和时间函数日期和时间函数13.3.4 13.3.4 聚合函数聚合函数13.3.5 13.3.5 系统函数系统函数授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.1 数学函数对数值型数据进展数学运算1ABS函数语法格式:ABS

49、( numeric_expression ) SELECT ABS(-1.0), ABS(0.0), ABS(1.0) - - - 1.0 .0 1.0 授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.1 数学函数2 2ROUNDROUND函数函数语法格式:语法格式:ROUND ( numeric_expression , length , function )ROUND ( numeric_expression , length , function )前往数字表达式并四舍五入为指定的长度或精度。前往数字表达式并四舍五入为指定的长度或精度。LengthLength:是:是

50、numeric_expression numeric_expression 将要四舍五入的精度。将要四舍五入的精度。length length 必需是必需是 tinyint tinyint、smallint smallint 或或intint。当当 length length 为正数时,为正数时,numeric_expression numeric_expression 四舍五入为四舍五入为 le length ngth 所指定的小数位数。所指定的小数位数。当当 length length 为负数时,为负数时,numeric_expression numeric_expression 那么按那

51、么按 length length 所指定的在小数点的左边四舍五入。所指定的在小数点的左边四舍五入。授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.1 数学函数2 2ROUNDROUND函数函数语法格式:语法格式:ROUND ( numeric_expression , length , function )ROUND ( numeric_expression , length , function ) function function:是要执行的操作类型。:是要执行的操作类型。function function 必需是必需是 tinyint tinyint、smallint

52、 smallint 或或 int int。假设省略假设省略 function function 或或 function function 的值为的值为 0 0默许,默许,numnumeric_expression eric_expression 将四舍五入。将四舍五入。当指定当指定 0 0 以外的值时,将截断以外的值时,将截断 numeric_expression numeric_expression。授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.1 数学函数例例 : Select ROUND(123.4545, 2) Select ROUND(123.4545, 2) S

53、elect ROUND(123.4545, -2) Select ROUND(123.4545, -2) Select ROUND(748.58, -1)Select ROUND(748.58, -1)Select ROUND(748.58, -2)Select ROUND(748.58, -2)Select ROUND(748.58, -3)Select ROUND(748.58, -3)Select ROUND(748.58, -4) Select ROUND(748.58, -4) Select ROUND(150.75, 0) Select ROUND(150.75, 0) Selec

54、t ROUND(150.75, 0, 1) Select ROUND(150.75, 0, 1) 授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.1 数学函数3 3RanDRanD函数函数语法格式:语法格式:RAND ( seed ) RAND ( seed ) DECLARE counter smallint DECLARE counter smallint SET counter = 1 SET counter = 1 WHILE counter 5 WHILE counter 5 BEGIN BEGIN SELECT RAND(counter) as SELECT RA

55、ND(counter) as 随机数随机数SET counter = counter + 1 SET counter = counter + 1 ENDENDGO GO 授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.1 数学函数例:将1800转化为弧度 select RADIANS(180) 例.求1238 的值及64的平方根 select power(123,8) Select sqrt(64)授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.2 字符串函数用于对字符串进展衔接、截取等操作1ASCII函数语法格式:ASCII ( character_exp

56、ression ) 2CHAR函数语法格式:CHAR ( integer_expression ) 3LEFT函数语法格式:LEFT ( character_expression , integer_expression ) 4RIGHT函数语法格式:RIGHT ( character_expression , integer_expression ) 授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.2 字符串函数5 5SUBSTRINGSUBSTRING函数函数语法格式:语法格式:SUBSTRING ( expression , start , length )SUBSTR

57、ING ( expression , start , length )6.REPLACE6.REPLACE函数函数语法格式:语法格式:REPLACE ( string_expression1 , string_expression2 , string_exREPLACE ( string_expression1 , string_expression2 , string_expression3 ) pression3 ) 7 7STRSTR函数函数语法格式:语法格式:STR ( float_expression , length , decimal ) STR ( float_expressi

58、on , length , decimal ) 1313LENLEN语法格式:语法格式:LEN ( string_expression ) LEN ( string_expression ) 授授课课15-T-SQL15-T-SQL程序程序设计设计例1:给出“数据库在“大型数据库中的位置 SELECT CHARINDEX(数据库,大型数据库)例2:计算字符串“SQL SERVER 数据库管理系统的长度 SELECT LEN(SQL SERVER 数据库管理系统)授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.3 日期和时间函数显示日期和时间的信息,处置datatime,sma

59、lldatatime的值,对其进展算术运算1GETDATE函数语法格式:GETDATE ( )2DAY函数语法格式:DAY ( date ) 3MONTH函数语法格式:MONTH ( date )4YEAR函数语法格式:YEAR ( date )授授课课15-T-SQL15-T-SQL程序程序设计设计13.3.3 日期和时间函数日期函数功能Getdate()返回服务器当前日期和时间Datename(日期元素,日期)返回指定日期的名字,字符串型Datepart(日期元素,日期)返回指定日期的一部分,整数型Datediff(日期元素,日期1,日期2)返回两个日期间的差值并转换为指定日期元素的形式D

60、ateadd(日期元素,数值,日期)将日期元素加上日期产生新的日期Year(日期)返回年份Month(日期)返回月份day(日期)返回某月几号的整数值Getutcdate()返回当前UTC时间授授课课15-T-SQL15-T-SQL程序程序设计设计日期元素缩写取值yearyy1753-9999monthMm1-12dayDd1-31hourhh0-23授授课课15-T-SQL15-T-SQL程序程序设计设计给出效力器当前的系统日期和时间,给出系统当前的月份和月份名字。select getdate() 当前日期和时间,datepart(year,getdate() 年,datename(year,getdate()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论