第3章 Transact-SQL语言 课件(共60张PPT)-《SQL Server数据库应用案例教程》同步教学(上海交通大学出版社)

资源下载
  1. 二一教育资源

第3章 Transact-SQL语言 课件(共60张PPT)-《SQL Server数据库应用案例教程》同步教学(上海交通大学出版社)

资源简介

(共60张PPT)
3
Transact-SQL语言


本章导读
Transact-SQL是SQL Server的核心查询语言,使用它能够实现关系数据库中的数据定义、数据操作等功能。
本章将介绍Transact-SQL语言的相关内容,包括SQL与Transact-SQL的关系,Transact-SQL基本语法、数据类型、常量、变量、表达式、运算符、常用函数及流程控制语句等。
知识目标
了解SQL与Transact-SQL的关系。
掌握Transact-SQL基本语法。
掌握数据类型的基础知识。
了解常量、变量、表达式、运算符、常用函数及流程控制语句的基础知识。
能力目标
能够根据数据的特点选择正确的数据类型。
能够编写简单的Transact-SQL代码。
素质目标
提升工作能力。
了解北京冬奥会对我国的积极意义,增强民族自信心。
项目导航
认识Transact-SQL
1
数据类型
2
常量与变量
3
表达式与运算符
4
常用函数
5
流程控制语句
6
01
认识Transact-SQL
3.1.1SQL与Transact-SQL1.SQL结构化查询语言(structured query language, SQL)是关系数据库的标准查询语言,是集数据查询、数据操纵、数据定义与数据控制于一体的综合性语言。在关系数据库中,使用它能够完成数据库内的所有操作。——此外,它还具有如下几个特点。综合能力强1SQL的语言风格统一且集数据查询、数据操纵、数据定义、数据控制等功能于一体,可以独立完成数据库活动中的全部工作。非过程化2运用SQL操纵数据时,用户不需要了解存取路径,其实现过程与存取路径的选择都由系统自动完成。——面向集合3SQL采用的是面向集合的操作方式,其操作对象、查询结果都是元组的集合。使用灵活4SQL既可以作为独立语言使用又可以作为嵌入式语言使用。简单易用5SQL不仅功能强大而且简单易用,使用简单的动词命令就可以实现各种核心功能。功能动词命令数据查询SELECT(查询)数据操纵INSERT(插入),UPDATE(更新),DELETE(删除数据)数据定义CREATE(创建),DROP(删除结构),ALTER(修改)数据控制GRANT(授权),REVOKE(收回授权)表3-1 SQL中的动词命令3.1.1SQL与Transact-SQL1.SQL3.1.1SQL与Transact-SQL2.Transact-SQL——Transact-SQL简称T-SQL,是在SQL语言的基础上进行大幅扩充而得到的专门用于SQL Server服务器技术的结构化查询语言。T-SQL不仅包含标准的SQL,还添加了变量、运算符、函数、注释和流程控制语句等,Transact-SQL基本语法提高了应用程序和脚本的可移植性,为开发人员提供了更多便利。3.1.2Transact-SQL基本语法1.Transact-SQL语法格式的说明——Transact-SQL基本语法使用T-SQL前,首先要了解其基本语法格式。下面以使用T-SQL创建数据表为例进行说明,其语法格式如下:CREATE TABLE <表名>(<列名> <数据类型> [列约束] [ , … n][ ,表约束])为方便讲解,接下来使用上述语法创建一个名为food的数据表,它包含两个属性(列),分别为foodnumber与foodname,其中foodnumbr是该数据表的码,foodname不可为空。代码如下:CREATE TABLE food(foodnumber int PRIMARY KEY,foodname varchar(10) NOT NULL)——语法约定说 明大写T-SQL中的关键字大写,如CREATE、TABLE、PRIMARY KEY、NOT NULL等斜体用户提供的参数< >子句或用户自定义的语法成分,如数据表名food{ }必选语法项,实际应用时不输入该符号[ ]可选语法项,实际应用时不输入该符号,如数据表的表约束为可选项|(竖线)分隔括号中的多个语法项,表示在多项中只能选择一项[ ,…n]表示前面的语法项可重复出现多次,相邻两项之间用逗号隔开,如数据表的列可设置多个且需用逗号隔开[…n]表示前面的语法项可重复出现多次,相邻两项之间用空格隔开;终止符表3-2 T-SQL语法约定及说明高手点拨T-SQL语句不区分大小写,也就是说CREATE与create的作用是相同的,但许多开发人员还是习惯将关键字用大写字母表示,其他标识符用小写字母表示,这样能够更加方便地阅读代码,在出错时也更容易修正。大家也应养成良好的编码习惯,同一类型的语句尽量不要大小写混用,提高代码的可读性与可维护性。3.1.2Transact-SQL基本语法1.Transact-SQL语法格式的说明3.1.2Transact-SQL基本语法2.标识符——标识符用于标识数据库对象(服务器、数据库、数据表、索引、触发器等)的名称,如上述数据表的表名food。标识符的命名通常需要遵循一定的规则,具体有如下几条。(1)标识符首字母必须为26个英文字母的大小写形式、其他语言字符或“_”“@”“#”。(2)标识符不能与T-SQL中的关键字重名,如不能为table(表)、view(视图)等。(3)标识符中不能含有空格或其他特殊字符。(4)标识符的长度不可超过128个字符。3.1.2Transact-SQL基本语法3.续行——在T-SQL中,代码语句一般都比较长,所以通常会将一条语句放在多行中编写。T-SQL会自动忽略空格与行尾的换行符号,使开发人员能够简单快捷地编写较长的代码语句,有效提高了代码可读性。3.1.2Transact-SQL基本语法4.注释——--从数据表student中查询所有学生的学号、姓名和性别SELECT sno,sn,sexFROM student单行注释语句1“--”用于创建单行文本注释语句。例如,如下语句中的首行是注释语句,不影响其他语句运行。在T-SQL中,可以使用两种方法表示注释语句。注释语句是对代码的注释,运行时不会运行注释语句。——SELECT sno,COUNT(*) AS numFROM sgrade/*GROUP BY snoHAVING (COUNT(*)>=2)*/块注释语句2“/* … */”用于创建块注释语句,其中所有的字符(无论单行还是多行)都会被注释。需要注意的是,“/*”与“*/”必须配套使用,并且“/”与“*”必须连在一起,中间不能有空格。例如,如下代码后两行被注释,该查询将忽略注释中的查询条件。3.1.2Transact-SQL基本语法4.注释——课堂小结①SQL与Transact-SQL②Transact-SQL基本语法
02
数据类型
——3.2.1整数型整数型是较常用的数据类型,按照取值范围从大到小,包括bigint、int、smallint、tinyint和bit共5种类型,如表3-3所示。数据类型取值范围占用字节bigint 263~263 1的整型数据8字节int 231~231 1的整型数据4字节smallint 215~215 1的整型数据2字节tinyint0~255的整型数据1字节bit0,1,NULL实际占用1 bit,但存储时会占用1字节;一个数据中含有多个bit字段时,可共用1字节表3-3整数型数据类型——3.2.2浮点型浮点型数据类型用于存储十进制小数,包括精确数值型numeric和decimal,以及近似数值型float和real,如表3-4所示。表3-4浮点型数据类型数据类型取值范围占用字节numeric[(p[,s])] 1038+1~1038 11~9位数占用5字节,10~19位数占用9字节,20~28位数占用13字节,29~38位数占用17字节decimal[(p[,s])] 1038+1~1038 1与numeric类型相同float[(n)] 1.79E+308~1.79E+308当n取1~24时,占用4字节;当n取25~53时,占用8字节real 3.40E+38~3.40E+384字节——3.2.3日期时间型SQL Server中常用的日期时间型数据类型包括datetime、smalldatetime、date和time等,如表3-5所示。表3-5日期时间型数据类型数据类型取值范围占用字节datetime1753-1-1 00:00:00.000—9999-12-31 23:59:59.997的日期和时间(精确值舍入到“.000”“.003”或“.007”秒3个增量)8字节smalldatetime1900-1-1 00:00—2079-6-6 23:59的日期和时间,时间精度为分钟4字节date0001-1-1—9999-12-31的日期8字节time00:00:00.0000000—23:59:59.9999999的时间,(基于24小时制)定义一天中的某个时间4字节——3.2.4字符型字符型数据类型包括char、varchar、nchar与nvarchar等,用于存储字母、数字或文字符号等,如表3-6所示。表3-6字符型数据类型数据类型占用字节与取值范围char[(n)]1个字符占用1字节,可存储1~8000个字节的固定长度的非Unicode字符varchar[(n|max)]1个字符占用1字节,可存储1~231 1个字节的非固定长度的非Unicode字符nchar[(n)]1个字符占用2字节,可存储1~4000个字节的固定长度的Unicode字符nvarchar[(n|max)]1个字符占用2字节,可存储1~231 1个字节的非固定长度的Unicode字符提示Unicode是国际标准组织发布的可以容纳世界上所有文字和符号的字符编码方案,使用两个字节表示一个字符。当数据中含有占用两个字节的字符时,如汉字等符号,可以设置使用Unicode字符的数据类型,防止各类字符混用时可能造成的乱码错误等问题。数据类型分类数据类型数据内容或取值范围占用字节货币型money 922337203685477.5808~922337203685477.5807的货币数据8字节smallmoney 214748.3648~214748.3647的货币数据4字节二进制型binary[(n)]1~8000位固定长度的二进制数据一位数据占用1字节varbinary[(n|max)]1~231 1位非固定长度的二进制数据一位数据占用1字节,最大为231 1个字节特殊类型uniqueidentifier全球唯一标识符16字节timestamp时间戳8字节——3.2.5其他类型除上述4种数据类型外,还有货币型、二进制型及特殊类型数据等,如表3-7所示。表3-7其他数据类型
03
常量与变量
——3.3.1常量常量是指其值不会改变的数据,如数字常量、字符串常量等。常量是表示一个特定值的符号,在程序运行的整个过程中都不会发生改变。202114.131.114367E+10数字常量1数字常量可以是有符号或无符号的整数,也可以是浮点小数,在使用时直接引用即可,不需要双引号引起来,如下都是数字常量。提示如果需要表示负数,可在数字常量前添加“-”。——3.3.1常量'Beijing 2022''The XXIV Olympic Winter Games'字符串常量2字符串常量需用单引号引起来,其中包含字母与数字字符,以及部分特殊字符(!、@、#等),如下都是字符串常量。知识库字符串常量分为ASCII字符串常量与Unicode字符串常量两类,前者每个字符使用一个字节存储;后者每个字符使用两个字节存储,且在字符串前必须添加一个前缀“N”。ASCII(american standard code for information interchange)是美国信息交换标准代码,它是基于拉丁字母的一套编码系统。它为部分字符制定了对应的数字编码,在一定情况下,字符与其编码能够相互转换。例如,使用T-SQL中的字符串函数能够输出某字符的编码,也能根据编码输出其对应的字符,具体内容将在3.5.3节介绍。——3.3.1常量拓展阅读2015年7月31日,托马斯·巴赫宣布2022年冬季奥林匹克运动会主办城市是北京,这代表着我国成功申请到了2022年冬季奥林匹克运动会的主办权。奥林匹克运动会是全球性的体育盛会,它不仅为各国体育健儿提供了展示自我的机会,还为促进世界和平、增进相互了解、实现文化交融搭建了最好的学习交流平台。'2008.8.8''4 February,2022'时间日期常量3日期时间常量需使用特定格式表示,且需用单引号引起来,如下都是日期时间常量。——3.3.2变量变量是指在其作用域内可以发生改变的量。每个变量都需要有变量名,且在使用前必须先定义。变量是在程序运行过程中值会发生改变的量,通常用于保存程序运行过程中的录入数据、中间结果或最终结果。全局变量1全局变量是由SQL Server系统定义并提供给用户使用的变量,通常用于存储SQL Server的配置设置值或性能统计数据。在使用时,需使用“@@”作为前缀,以表示变量为全局变量。部分常用的全局变量及其说明如表3-8所示。全局变量说 明@@VERSION返回当前SQL Server版本、处理器体系结构、生成日期及操作系统@@LANGUAGE返回当前所用语言的名称@@ROWCOUNT返回受上一条语句影响的数据行数表3-8部分常用的全局变量及其说明——3.3.2变量用户常用全局变量来测试系统的设定值或T-SQL命令执行后的状态值。例如,使用全局变量查看当前数据库版本信息的T-SQL语句如下:GOPRINT @@VERSIONGO执行结果如图3-1所示。图3-1查看当前数据库版本信息——3.3.2变量高手点拨在SSMS中执行T-SQL语句的方法如下。(1)打开SSMS并登录。(2)在工具栏中单击“新建查询”按钮,在界面下方打开查询编辑窗口。(3)在查询编辑窗口中输入语句后,在工具栏中单击“执行”按钮,如图3-2所示。图3-2在SSMS中执行T-SQL语句——3.3.2变量知识库(1)GO是一种分隔符,可以使系统分批处理语句。例如,想要创建数据表,必须先创建数据表所在的数据库,所以创建库和表的代码不可以同时执行,如果不使用GO将它们隔开的话,就必须先输入创建数据库的代码并执行一次,然后再输入创建数据表的代码并执行一次。(2)PRINT关键字表示输出指定内容。——3.3.2变量局部变量2用户自定义的变量为局部变量。局部变量通常用于保存特定类型的单个数据值,在使用前必须先定义。(1)局部变量的定义。定义局部变量的关键字为DECLARE,具体语法格式如下:DECLARE <局部变量名> <数据类型>[ , … n]其中,局部变量名必须以“@”为前缀;一个DECLARE语句可以同时定义多个变量,它们之间用逗号隔开。(2)局部变量的赋值。为局部变量赋值的关键字为SET或SELECT,具体语法格式如下:SET <局部变量名>=<表达式>SELECT <局部变量名>=<表达式>[ , … n]其中,SET语句每次只能为一个局部变量赋值,而SELECT语句每次可为多个局部变量赋值。——3.3.2变量局部变量2(3)变量值的输出。输出变量值的关键字为PRINT或SELECT,具体语法格式如下:PRINT <局部变量名>SELECT <局部变量名>[ , … n]其中,PRINT语句一次只能输出一个变量值,其值显示在“消息”窗口中;SELECT语句相当于进行一次数据检索,可以同时输出多个变量值,并显示在“结果”窗口中。高手点拨在同一个应用程序中,最好不要同时使用这两种方式,以避免频繁切换两个窗口查看结果。——3.3.2变量局部变量2【例3-1】打开SSMS并登录。在工具栏中单击“新建查询”按钮,在打开的查询编辑窗口中输入如下代码,声明变量,为变量赋值并输出变量,单击“执行”按钮,执行结果如图3-3所示。GODECLARE @name varchar(8),@sex char(2),@age smallint,@addr varchar(50)SELECT @name='张三',@sex='男',@age=18,@addr='北京'SELECT @name,@sex,@age,@addrGO图3-3例3-1的执行结果(4)局部变量的作用域。局部变量仅在当前存储过程、触发器中有效。
04
表达式与运算符
——3.4.1表达式表达式是按照一定规则,用运算符将常量、变量、列名、函数等对象连接而成的一个式子。表达式可以通过计算得到结果。表达式可以是一个常量、变量、列名、函数或子查询,也可以是多个简单表达式连接而成的复杂表达式。根据表达式最终返回的值的数据类型,可以将其分为字符型表达式、数值型表达式、日期时间型表达式等。例如,a=1+1为数值型表达式。——3.4.2运算符算术运算符1算术运算符用于执行数学运算,其连接的两个操作数是数值型数据。算术运算符及其说明如表3-9所示。算术运算符说 明算术运算符说 明+加/除-减%取模*乘表3-9算术运算符及其说明提示加、减运算符也可用于对datetime与smalldatetime类型数据执行运算。——3.4.2运算符赋值运算符2=(等号)是T-SQL中的赋值运算符,它表示将右侧的结果赋值给左侧的对象。比较运算符3比较运算符用于比较其两侧的表达式是否存在等于、大于、小于等关系,通常在查询语句的条件子句中使用。比较运算符及其说明如表3-10所示。比较运算符说 明比较运算符说 明>大于<=小于或等于<小于=等于>=大于或等于<>不等于表3-10比较运算符及其说明——3.4.2运算符逻辑运算符4逻辑运算符用于对某些条件进行判断,其与比较运算符的使用场景基本相同,返回的结果也是一个布尔型数据。逻辑运算符及其说明如表3-11所示。逻辑运算符说 明ALL常用于查询语句的条件子句中,与比较运算符连用,表示必须全部数据都符合条件才为true,否则为falseAND也称逻辑与运算。若两侧表达式皆为true,则为true;其余情况皆为false。例如,(1>2) AND (2<3)表达式,两个子表达式的结果分别为false与true,则整个表达式的结果为falseOR也称逻辑或运算。若两侧表达式皆为false,则为false;其余情况皆为true。例如,(1>2) OR (2<3)表达式,两个子表达式的结果分别为false与true,则整个表达式的结果为trueANY与ALL类似,表示只要任一数据符合条件即为true,当全部数据都不符合条件时才为falseBETWEEN AND表示在……之中,AND两侧为表示范围的参数。若操作数在该范围内,则为true,否则为falseIN若操作数等于表达式列表中的某一个,则为trueLIKE表示部分匹配,若操作数与某种格式匹配,则为trueNOT表示否定,即对布尔型结果取反表3-11逻辑运算符及其说明提示ALL与ANY等逻辑运算符在查询语句中的应用可见第5章。——3.4.2运算符位运算符5位运算符表示对表达式执行按位操作。位运算符及其说明如表3-12所示。位运算符说明&位与,将两个操作数转换为对应的二进制数,逐位进行逻辑与运算,若对应的二进制位都为1,则运算结果为1,否则为0,得到的结果自动转换为十进制数|位或,将两个操作数转换为对应的二进制数,逐位进行逻辑或运算,若对应的二进制位有一个或两个为1,则该位的运算结果为1,否则为0^位异或,将两个操作数转换为对应的二进制数,逐位进行逻辑异或运算,若对应的二进制位不同,对应位的结果为1,若两个对应位都为0或者都为1,则对应位的结果为0~位非,将操作数转换为对应的二进制数,逐位反转,即1取反后变0,0取反后变为1表3-12位运算符及其说明——3.4.2运算符连接运算符6+(加号)是T-SQL中的连接运算符,用于将字符串连接起来。例如,“'张三的总成绩:'+'180'”的结果为“张三的总成绩:180”。一元运算符7一元运算符是只对一个表达式执行操作的运算符,常用的一元运算符有+(正号,表示数值为正)与-(负号,表示数值为负)。——3.4.3运算符优先级当一个表达式中含有多个运算符时,由运算符的优先级来决定运算执行的先后顺序。先运算高优先的运算,再用其结果进行低优先的运算,具体说明如表3-13所示。优先级运算符1~(位非)2*(乘)、/(除)、%(取模)3+(正)、-(负)、+(加)、+(连接)、-(减)、&(位与)、^(位异或)、|(位或)4=(等于)、>、<、>=、<=、<>、5NOT6AND7ALL、ANY、BETWEEN、IN、LIKE、OR8=(赋值)表3-13运算符的优先级
05
常用函数
——3.5.1聚合函数聚合函数能够对一组数据执行某种计算,并返回一个统计结果,常用的聚合函数及其说明如表3-14所示。函数名称说 明AVG()计算平均值SUM()计算总和MAX()求最大值MIN()求最小值COUNT()统计符合条件的项数COUNT(*)统计所有项数表3-14常用的聚合函数及其说明——3.5.2数学函数绝对值函数为ABS(x),返回x的绝对值。5.2.1绝对值函数【例3-2】在SSMS的查询编辑窗口中输入如下代码,求10、-10、-10.5的绝对值,然后单击“执行”按钮,执行结果如图3-4所示。SELECT ABS(10),ABS(-10),ABS(-10.5)图3-4求10、-10、-10.5绝对值的执行结果——3.5.2数学函数三角函数包括正弦函数、反正弦函数、余弦函数、反余弦函数、正切函数、反正切函数及余切函数等,常用三角函数及其说明如表3-15所示。5.2.2三角函数三角函数说明SIN(x)正弦函数,它将返回x的正弦值(x为弧度值,下同)ASIN(x)反正弦函数,它将返回x的反正弦值COS(x)余弦函数,它将返回x的余弦值ACOS(x)反余弦函数,它将返回x的反余弦值TAN(x)正切函数,它将返回x的正切值ATAN(x)反正切函数,它将返回x的反正切值COT(x)余切函数,它将返回x的余切值表3-15三角函数及其说明——3.5.2数学函数5.2.2三角函数【例3-3】在SSMS的查询编辑窗口中输入如下代码,求“SIN(1)”与“COS(0)”的值,然后单击“执行”按钮,执行结果如图3-5所示。SELECT SIN(1),COS(0)图3-5求“SIN(1)”与“COS(0)”值的执行结果——3.5.2数学函数对数函数有LOG(x)与LOG10(x),它们分别返回x的自然对数值和以10为基数的X的对数值。5.2.3对数函数【例3-4】在SSMS的查询编辑窗口中输入如下代码,求“LOG(3)”与“LOG10(100)”的值,然后单击“执行”按钮,执行结果如图3-6所示。SELECT LOG(3),LOG10(100)图3-6求“LOG(3)”与“LOG10(100)”值的执行结果——3.5.2数学函数随机数函数有RAND()与RAND(x),它们都返回一个随机的浮点数值,范围在0到1之间。区别在于,RAND()函数每次运行会返回不同的结果;而RAND(x)中的x取同一值时,即便重复多次,也将返回同一随机值。5.2.4随机数函数【例3-5】在SSMS的查询编辑窗口中输入如下代码,求若干随机值,然后单击“执行”按钮,执行结果如图3-7所示。SELECT RAND(),RAND(),RAND(1),RAND(1),RAND(2)图3-7求随机值的执行结果——3.5.3字符串函数字符串函数用于对字符和二进制字符串执行各种操作,常用字符串函数及其说明如表3-16所示。字符串函数说明ASCII('x')返回字符串x的ASCII代码值CHAR(x)返回整数类型的ASCII代码值x所对应的字符LEFT('x',n)返回字符串x左数前n个字符RIGHT('x',n)返回字符串x右数前n个字符SUBSTRING('x',n1,n2)返回字符串x从第n1个字符开始的n2个字符CHARINDEX('x1','x2',[n])在字符串x2中查找字符串x1出现的位置,返回数值;n表示开始查找的位置LTRIM('x')返回去除字符串x左侧空格后的字符串RTRIM('x')返回去除字符串x右侧空格后的字符串REPLICATE('x',n)将字符串x重复n次REVERSE('x')将字符串x倒置STR(x)将数值表达式x转换成字符串LEN(x)返回字符串x的字符数,其中不包括尾随的空格表3-16字符串函数及其说明——【例3-6】在SSMS的查询编辑窗口中输入如下代码,对字符串进行操作,然后单击“执行”按钮,执行结果如图3-8所示。SELECT ASCII('A'),CHAR(65),LEFT('SQL Server',3),RIGHT('SQL Server',6)图3-8对字符串进行操作的执行结果3.5.3字符串函数——3.5.4日期与时间函数日期与时间函数主要用于处理日期与时间类型的值,常用日期与时间函数及其说明如表3-17所示。日期与时间函数说明GETDATE()返回当前数据库系统的日期和时间,返回值类型为datetimeGETUTCDATE()返回当前UTC(世界标准时间)日期值DAY('d')MONTH('d')YEAR('d')分别返回指定日期在当月的天数、月份、年份表3-17日期与时间函数及其说明——【例3-7】在SSMS的查询编辑窗口中输入如下代码,对日期时间进行操作,然后单击“执行”按钮,执行结果如图3-9所示。SELECT GETDATE(),GETUTCDATE(),DAY('2022-1-22')图3-9对日期时间进行操作的执行结果3.5.4日期与时间函数——3.5.5数据类型转换函数T-SQL提供了可以将数据类型进行转换的函数,使用这类函数能够更加方便地处理不同类型数据之间的转换。数据类型转换函数有CAST(x AS type)与CONVERT(type,x),它们能够将一个类型的值转换成另一个类型的值。【例3-8】在SSMS的查询编辑窗口中输入如下代码,进行数据类型转换操作,然后单击“执行”按钮,执行结果如图3-10所示。SELECT CAST('220204' AS date),CAST(100 as money),CONVERT(time,'2022-1-22 12:11:10')图3-10进行数据类型转换操作的执行结果
06
流程控制语句
——3.6流程控制语句BEGIN…END语句1BEGIN…END语句是语句块语句,通常放置在其他流程控制语句的关键字前后,用于包裹多条语句,相当于多条语句外的一个“括号”。具体语法格式如下:BEGIN多条语句ENDIF…ELSE语句2IF…ELSE语句是条件语句,也叫选择语句。它对IF关键字之后的表达式进行条件判断,若布尔值为true则执行ELSE关键字之前的语句;若布尔值为false则执行ELSE关键字之后的语句。具体语法格式如下:IF条件表达式语句|语句块ELSE语句|语句块——IF…ELSE语句2【例3-9】在SSMS的查询编辑窗口中输入如下代码,根据定义的年龄数据判断此人是否成年,然后单击“执行”按钮,执行结果如图3-11所示。DECLARE @age smallintSELECT @age=20IF @age<18PRINT '此人年龄为'+CAST(@age AS varchar)+',未成年。'ELSEPRINT '此人年龄为'+CAST(@age AS varchar)+',已成年。'图3-11根据定义的年龄数据判断此人是否成年3.6流程控制语句——WHILE语句3WHILE语句是循环语句,它先对WHLIE关键字之后的表达式进行条件判断,若布尔值为true则循环执行下一行语句,否则退出循环。具体语法格式如下:WHILE条件表达式语句|语句块[BREAK|CONTINUE]关键字BREAK表示从循环语句整体中跳出;CONTINUE表示从当前一次循环跳出,继续执行下一次循环。3.6流程控制语句——WHILE语句3【例3-10】DECLARE @sum INT,@i INTSELECT @sum=0,@i=1WHILE @i<=100BEGINSET @sum=@sum+@iSET @i=@i+1ENDPRINT @sum图3-12利用循环计算1+2+3+…+99+100的值在SSMS的查询编辑窗口中输入如下代码,利用循环计算1+2+3+…+99+100的值,然后单击“执行”按钮,执行结果如图3-12所示。3.6流程控制语句——RETURN语句4RETURN语句是返回语句,用于从查询或过程中无条件退出,默认返回0。它可以放置在代码中的任意位置,其后的语句都将不会执行。GOTO语句5GOTO语句可以使代码执行流程无条件跳转到指定的标签位置,即跳过GOTO语句及标签位置之间的语句,在标签位置继续执行。具体语法格式如下:GOTO标签名语句块1标签名:语句块2当程序执行至GOTO语句时,直接跳转到定义的标签位置,执行语句块2,忽略语句块1。3.6流程控制语句——GOTO语句5【例3-11】DECLARE @sum INT,@i INTSELECT @sum=0,@i=1label1:SET @sum=@sum+@iSET @i=@i+1IF @i<=100GOTO label1ELSEPRINT @sum图3-13使用GOTO语句实现例3-10的效果在SSMS的查询编辑窗口中输入如下代码,使用GOTO语句实现例3-10的效果,然后单击“执行”按钮,执行结果如图3-13所示。3.6流程控制语句——课堂总结①认识Transact-SQL②数据类型③常量与变量④表达式与运算符⑤常用函数⑤流程控制语句

展开更多......

收起↑

资源预览