教学课件ch7 T-SQL应用编程_第1页
教学课件ch7 T-SQL应用编程_第2页
教学课件ch7 T-SQL应用编程_第3页
教学课件ch7 T-SQL应用编程_第4页
教学课件ch7 T-SQL应用编程_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

第7章T-SQL应用编程,国家“十三五”重点出版规划项目上海高校优秀教材奖获得者主编,数据库原理及应用与实践,主编贾铁军谷伟副主编俞小怡王冠万程编者戴春妮王坚,上海市高校精品课程上海高校优质在线课程,基于SQLServer2016(第3版立体化.新形态),教学目的,教学目的理解T-SQL的编程功能和执行方式掌握常用批处理、脚本与事务的用法熟练掌握T-SQL流程控制语句及应用理解嵌入式SQL的使用方法,重点,重点,上海市高校精品课程国家十三五规划项目,7.1T-SQL基础概述,7.1.1T-SQL语言的编程功能Transact-SQL(T-SQL)是事务结构化查询语言的缩写SQLServer2016的核心组件。SQL语言的主要功能就是同各种数据库建立联系并进行交互。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。T-SQL语言是Microsoft公司在SQLServer数据库管理系统中SQL的实现,主要用于关系数据的操作,是与SQLServer交流的语言。,上海市高校精品课程国家十三五规划项目,7.1T-SQL基础概述,T-SQL语言的编程功能包括:基本功能和扩展功能。1.基本功能基本功能概括为5种:数据定义语言(DataDefinitionLanguage,DDL)功能;数据操纵语言(DataManipulationLanguage,DML)功能;数据控制语言(DataControlLanguage,DCL)功能;事务管理语言(TransactManagementLanguage,TML)功能和数据字典DD及其应用功能。,上海市高校精品课程国家十三五规划项目,对数据的数据项,数据结构,数据流,数据存储,处理逻辑,外部实体等进行定义和描述,目的是对数据流程图中各元素做出详细说明。,复习要点,7.1T-SQL基础概述,2基本扩展功能T-SQL语言扩展功能,主要包括:程序流程控制结构(顺序-选择-循环).此外包括:T-SQL附加的语言元素的辅助语句的操作、标识、理解和使用,并加入局部变量和系统变量等。附加的语言元素包括:标识符、常量、变量、运算符、表达式、数据类型、函数、流程控制语句、错误处理语言、注释等元素。,上海市高校精品课程国家十三五规划项目,7.1T-SQL基础概述,7.1.2在SSMS中使用T-SQL在SQLServer系统中,主要使用SSMS(SQLServerManagementStudio)工具执行T-SQL语言编写的语句。SSMS支持对大多数数据库对象,如表、视图、存储过程、函数和触发器等生成操作SQL语句。如需要生成查询表Person.AddressType的SQL语句,只需要在该表上右击,选择“编写表脚本为”|“SELECT到”|“新查询编辑器窗口”命令,如图7-1所示。SELECTAddressTypeID,Name,rowguid,ModifiedDateFROMAdventureWorks.Person.AddressType,图7-1为表生成查询SQL语句,上海市高校精品课程国家十三五规划项目,生成语句,标识符,7.1T-SQL基础概述,图7-2运行SQL语句,可单击工具栏的“执行”按钮运行这些语句。运行的结果将在主区域中SQL语句下以表格的形式显示,如图7-2所示。,可选中部分语句执行,对象名可拖拽,上海市高校精品课程国家十三五规划项目,7.1T-SQL基础概述,【案例7-2】在SSMS主窗口中,关闭(左)“已注册的服务器”窗口、“模板资源管理器”窗口、“对象资源管理器”窗口等,可最大限度地显示查询窗口。在查询窗口中执行T-SQL语句后的结果如图7-3所示。,在查询窗口中,可看见“SQL编辑器”工具栏及其上的图标功能描述.常用工具图标是“!执行(X)”图标,用于执行选中的T-SQL语句。,图7-3执行T-SQL语句示例,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,7.2.1批处理概述1批处理的概念(1)批处理。是指被一次性T-SQL语句组的执行处理。(2)执行单元。SQLServer将批处理编译成一个可执行单元,称为执行计划。(3)若批处理中的某条语句编译出错,则无法执行。(4)书写批处理时,GO语句作为批处理命令的结束标志,当编译器读取到GO语句时,会将GO语句前的所有语句当作一个批处理,并将这些语句打包发送给服务器。GO语句本身不是T-SQL语句的组成部分,只是一个表示批处理结束的前端指令。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,2批处理的规则使用批处理需要注意规则:(1)一次只能限于一个处理,增删改及存储过程和触发器等.(2)不能在删除一个对象后,在同一批处理中再次引用此对象。*(3)不可将规则和默认值绑定到表字段/自定义字段上后,立即在同一批处理中进行使用。(4)不允许在定义一个check约束后,立即在同一个批处理中使用.(5)不能修改表中一字段名后,立即在同一批处理中引用此新字段.(6)使用set语句设置的选项,不能应用于同一批处理中的查询。*(7)若批处理中第一个语句是执行某个存储过程的execute语句,则execute关键字可省略.若不是第一个语句,则必须写上。,执行,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,*【案例7-3】在批处理中出现变量引用错误。由于SQLServer通常以一次批处理为单元进行语法分析,因此各种变量对于定义它的批处理而言是局部化的。不能引用在其他批处理中定义的变量。/*BatchesandVariables*/DECLAREiASINT=100-成功引用PRINTi;GO/*引用失败,在这个批处理中未定义变量i*/PRINTi;GO,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,*3指定批处理的方法4种指定批处理的方法,包括:(1)应用程序作为一个执行单元的所有SQL语句构成一个批处理,并生成单个执行计划。*(2)存储过程或触发器内的所有语句构成一个批处理,每个存储过程或触发器都编译为一个执行计划。(3)由EXECUTE语句执行的字符串是一个批处理,并编译为一个执行计划。*(4)由sp_executesql存储过程执行的字符串是一个批处理,并编译为一个执行计划。说明:若应用程序发出的批处理过程中含有EXECUTE语句,已执行字符串或存储过程的执行计划将和包含EXECUTE语句的执行计划分开执行。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,4批处理的执行、结束和退出1)批处理的执行:EXECUTE功能:执行常量的用户定义函数、系统过程、存储过程或扩展存储过程,同时支持T-SQL批处理内的字符串的执行.2)批处理结束语句批处理结束语句GO,作为批处理的结束标志。3)批处理退出语句批处理退出语句:RETURN整型表达式可无条件中止查询、存储过程或批处理的执行。存储过程或批处理不执行RETURN之后的语句。当存储过程使用该语句,*则可用该语句指定返回给调用应用程序、批处理或过程的整数值。若return语句未指定值,则存储过程的返回值是0。*说明:当用于存储过程时,RETURN不能返回空值。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,*GO命令支持一个指示所执行的次数n。若执行一个批处理5次,则可写代码为:USE教务管理系统GO/*批2*/DECLAREstuNumberASINT=1000-定义局部变量PRINTstuNumberGO5,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,*【案例7-4】在批处理中出现变量引用错误。由于SQLServer通常以一次批处理为单元进行语法分析,因此各种变量对于定义它的批处理而言是局部化的。在编写比较复杂的T-SQL代码批处理时,定义的临时变量的作用域不能跨越批处理存在。也就是说不能引用在其他批处理中定义的变量。,上海市高校精品课程国家十三五规划项目,/*批1*/USE教务管理系统GO/*批2*/DECLAREstuNumberASINT=1000;/*定义局部变量stuNumber表示学生数量为1000*/PRINTstuNumber;/*成功引用*/GO/*批3*/PRINTstuNumber;/*试图引用批2中定义的变量,发生引用失败在这个批处理中未定义该变量*/GO,7.2批处理、脚本及事务,7.2.2脚本的概念及用途脚本是存储在文件中一系列T-SQL语句。是一系列顺序提交的批(处理),脚本文件扩展名为.sql。脚本可直接在查询分析器等工具中输入并执行,也可以保存文件中,再由查询分析器等工具执行。可包含批处理,GO作为批处理结束语句,若脚本中无GO语句,则作为单个批处理。脚本的用途主要有两个方面:(1)在服务器上创建一个数据库的步骤,存储在脚本文件中(2)将语句保存为脚本文件,从一计算机传递到另一计算机,可以方便地使两台计算机执行同样操作。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,7.2.2事务的特征及应用【案例7-5】银行一次转账事务。在银行一次转账中,如果将一笔款从A帐户转入B帐户,则从A帐户取款和存入B帐户都必须成功,才能正确处理该笔款项。否则整个事务必定失败。如果只执行其中一个操作,则数据库处于不一致状态,帐务会出现问题。事务的提出是为了处理某些情况,此时数据库的结果状态取决于一系列操作是否全部成功。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,2事务及其特征1)事务的定义.事务(Transaction)是完成一个应用处理的最小单元,作为单个逻辑工作单元由数据库操作的语句组成.数据库的并发控制是以事务为基本单位进行的.一个事务可以是一组(句)SQL语句或整个程序,一个应用程序可以包括多个事务。在SQL语言中,定义事务的语句有3条:BEGINTRANSACTIONCOMMITROLLBACK说明:BEGINTRANSACTION表示事务的开始;COMMIT表示事务的提交,即将事务中所有对数据库的更新写回物理数据库中去,此时事务正常结束;ROLLBACK表示事务的回滚(退回),即在事务运行过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,再回滚到事务开始时的状态。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,2)事务的特征事务由有限的数据库操作序列组成,为了保护数据的完整性,一般要求事务具有以下4个特征:(1)原子性(Atomic)。各事务为不可分割的工作单位,执行时应遵守“要么不做,要么全做”的原则,不允许事务部分完成。(2)一致性(Consistency)。事务对数据库的作用是使数据库从一个一致状态转变到另一个一致状态。数据库的一致状态是指数据库中的数据满足完整性约束。必须在语义上保留事务绑定的数据。(3)隔离性(Isolation)。若多个事务并行执行,应如同各事务独立执行一样,一个事务的执行不能受其他事务干扰。并发控制就是为了保证事务间的隔离性.(4)持久性(Durability)。事务是一个恢复单元,一个事务一旦提交,对数据库中数据的改变就是持久的,即使数据库因故障而受到破坏,DBMS也应当可以恢复。上述4个性质的英文术语的第一个字母为ACID.故称这4个性质为事务的ACID准则。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,注意:事务ACID特性可能遭到破坏的因素:多个事务并行运行时,不同事务的操作交叉执行;事务在运行过程中被强行停止。,上海市高校精品课程国家十三五规划项目,注意:事务和批处理的区别。事务是操作的原子单元,一个批处理中可以包含多个事务,一个事务可以被分为多个批处理提交。批处理的组合发生在编译时刻,事务的组合发生在执行时刻。,7.2批处理、脚本及事务,3)SQLServer运行的事务模式自动提交事务:每条单独的语句都是一个事务。显式事务:每个事务均以BEGINTRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。隐式事务:在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成。批处理级事务:只能应用于多个活动结果集(MARS),在MARS会话中启动的T-SQL显式/隐式事务变为批处理级事务。当批处理完成时没有提交/回滚的批处理级事务自动由SQLServer进行回滚。,上海市高校精品课程国家十三五规划项目,7.2批处理、脚本及事务,【案例7-6】回滚操作在事务中的应用。USEtempdb;GO-必须是批处理的第一句话,需要在此处加GOCREATETABLEValueTable(valueint;)-该表只有一列,为整型数GODECLARETransactionNamevarchar(20)=Transaction1;BEGINTRANTransactionNameINSERTINTOValueTableVALUES(1),(2);ROLLBACKTRANTransactionName;INSERTINTOValueTableVALUES(3);SELECTvalueFROMValueTable;DROPTABLEValueTable;,上海市高校精品课程国家十三五规划项目,结果:-value-3,分析:这里,因为使用了ROLLBACKTRAN,因此插入值(1)(2)的动作被撤销,只有值(3)被插入了表ValueTable中。,(1)什么是批处理及其规则?指定其方法有哪些?(2)什么是脚本?主要有哪些用途?(3)什么是事务?其特征有哪些?,在T-SQL数据库应用程序设计中,流程控制语句是用于控制SQL语句、语句块或存储过程执行流程的命令,可以改变或优化程序的执行顺序,提高执行效率。7.3.1顺序结构顺序结构是一种最简单的控制语句,从上至下逐一执行每条语句。常用的赋值语句包括:赋值语句SET赋值语句SELECT输出语句PRINT,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,7.3.1顺序结构1SET语句1)SET语句有两种用法(1)给局部变量赋值。(2)设定用户执行T-SQL命令时SQLServer处理选项,设定方式:SET选项ON:选项开关打开。SET选项OFF:选项开关关闭。SET选项值:设定选项的具体值。例如:设置显示/隐藏受T-SQL语句影响的行数信息的语法:SETNOCOUNT(ON|OFF)2)使用规则给标量变量赋值时,其值必须是一个标量表达式的结果。该表达式可以是一个标量子查询的结果。SET语句一次只能操作一个变量。如果给多个属性赋值,则需要多个SET语句。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,SET运行/处理环境(方式)ON/OFF/值,【案例7-7】如果子查询返回多个值,则运行失败。DECLAREempnameASNVARCHAR(31);SETempname=(SELECTfirstname+N+lastnameFROM订单详情表WHERE物流天数=5);SELECTempnameAScustomerName;GO,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,由于物流天数属性值大于5的订单涉及到的顾客不止一位,上述代码会返回下面的输出:消息512,级别16,状态1,第3行子查询返回的值不止一个。当子查询跟随在=、!=、=之后,或子查询用作表达式时,不允许这种情况。,查看结果,2SELECT输出语句(1)SELECT作为输出使用时的语法为:SELECT表达式1,表达式2,表达式n功能:输出指定“表达式”的结果,默认字符型。(2)SQLServer还支持非标准的赋值SELECT语句,允许使用单个语句查询数据并分配给来自同一行的多个值给多个变量。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,【案例7-8】将订单编号orderId为3001的顾客的姓和名,赋值给两个变量。DECLAREfirstnameASNVARCHAR(10),lastnameASNVARCHAR(20);SELECTfirstname=firstname,lastname=lastnameFROM订单信息表WHEREorderId=3001;,3PRINT输出语句输出语句PRINT主要用于在指定设备上输出字符型信息,可以输出的数据类型只有:char、nchar、varchar、nvarchar以及全局变量VERSION等。PRINT语句格式为:PRINT或PRINTanyASCIItext|local_variable|FUNCTION|string_expr,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,说明:(1)若的值不是字符型,则需要先用Convert函数转换为字符型。(2)anyASCIItext:为文本/字符串。(3)local_variable:表示字符型的局部变量。(4)FUNCTION:返回字符串结果的函数。(5)string_expr:字符型表达式,最长为8000个字符。,【案例7-9】查看物流运送方式为快递包邮的订单的数量。说明:物流途径有两种为1.快递2.自取DECLAREcountintIFEXISTS(SELECTorderIDFROM订单信息表WHERE运送方式=1)BEGINSELECTcount=count(orderID)FROM订单信息表WHERE运送方式=1PRINT物流途径为快递包邮的订单的数量为:+CONVERT(CHAR(5),count)+单END,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,转换为C型,用指定长的字符串,执行结果为:物流途径为快递包邮的订单的数量为:30单,7.3.2BEGIN.END结构BEGIN.END结构可使一组T-SQL命令作为一个单元或整体来执行。BEGIN定义了一个单元的起始位置,END则作为其单元的结束。BEGIN.END多用于后面介绍的IF.ELSE选择结构和WHILE循环结构中。BEGIN.END结构的语法格式为:BEGINSQL语句语句块END说明:关键字BEGIN、END必须成对出现。BEGINEND允许嵌套。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,【案例7-10】查询订单详情表中发货地点为上海和北京的订单数量。USETSQL2016GODECLAREshOrderint,BjOrderintIFexists(SELECT*FROM订单详情表WHERE发货地点=上海)BEGINSELECTshOrder=COUNT(*)FROM订单详情表WHERE发货地点=上海PRINT发货地点为上海的订单的数量为:+RTRIM(CAST(shOrderASchar(4)+单ENDELSEPRINT没有发货地点为上海的订单!IFexists(SELECT*FROM订单详情表WHERE发货地点=北京)BEGINSELECTBjOrder=COUNT(*)FROM订单详情表WHERE发货地点=北京PRINT发货地点为北京的订单的数量为:+RTRIM(CAST(BjOrderASchar(4)+单ENDELSEPRINT没有发货地点为北京的订单!执行结果为:发货地点为上海的订单的数量为:15单没有发货地点为北京的订单!,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,去尾空格,数据类型转成,7.3.3选择结构选择结构也称为分支结构,主要根据判断“条件”是否成立并选择执行相应的命令(块),具有两种形式:IF.ELSE语句结构和CASE语句结构。1.IF.ELSE结构对于IF.ELSE语句结构(称为单/双分支结构),根据条件的结果执行不同的命令(语句)块。语法格式为:IFELSE说明:程序执行到IF.ELSE命令时,测试IF后面的,若为真,则执行IF后面的程序体(块).否则,执行ELSE后面的程序体.当无ELSE分支时,直接执行接下来的程序体。IF.ELSE允许嵌套使用。可由BEGINEND包含的多条T-SQL语句组成.IFELSE语句中不止包含一条语句时,须用BEGINEND语句块.可在IF后/ELSE后,嵌套另一IF语句.,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,语句块1,语句块2,条件,【案例7-11】判断今天是否是一年的最后一天。IFYEAR(SYSDATETIME()YEAR(DATEADD(day,1,SYSDATETIME()/*SYSDATETIME()函数可获得当前系统时间*/PRINT今天是一年的最后一天!;ELSEPRINT今天不是一年的最后一天!;GO注意:IF语句经常使用谓词Exists和IFNOT实现复杂的条件判断。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,【案例7-12】查询订单表中发货地点为北京的订单数量,若查不到,则显示提示。USETSQL2016GODECLAREBjOrderintIFexists(SELECT*FROM订单详情表WHERE发货地点=北京)BEGINSELECTBjOrder=COUNT(*)FROM订单详情表WHERE发货地点=北京PRINT发货地点为北京的订单的数量为:+RTRIM(CAST(BjOrderASchar(4)+单ENDELSEPRINT没有发货地点为北京的订单!执行结果为:没有发货地点为北京的订单!,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,在上述的两个案例中,IF或ELSE下面的“程序体”只有一条命令,若在IF或ELSE中执行多条命令,则必须将多条命令作为一个整体执行,这就需要BEGIN.END结构,【案例7-13】利用嵌套IF.ELSE编程。USETSQL2016GODECLAREshOrderint,BjOrderintIFexists(SELECT*FROM订单详情表WHERE发货地点=上海)BEGINSELECTshOrder=COUNT(*)FROM订单详情表WHERE发货地点=上海PRINT发货地点为上海的订单的数量为:+RTRIM(CAST(shOrderASchar(4)+单ENDELSEIFexists(SELECT*FROM订单详情表WHERE发货地点=北京)BEGINSELECTBjOrder=COUNT(*)FROM订单详情表WHERE发货地点=北京PRINT发货地点为北京的订单的数量为:+RTRIM(CAST(BjOrderASchar(4)+单ENDELSEPRINT没有发货地点为北京的订单,也没有发货地点为上海的订单!执行结果为:发货地点为上海的订单的数量为:15单,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,2.CASE结构CASE结构也称为多分支结构,CASE表达式可以计算多个条件,并将其中一个符合条件的表达式结果返回。CASE表达式有两种不同形式:简单CASE表达式和搜索式CASE表达式.由于CASE结构使用表达式,所以可用于任何允许使用表达式的地方。1)简单CASE表达式简单CASE表达式的语法结构为:CASEWHENTHENnELSEEND说明:在语法结构中,可选项.n表示有n个类似WHENTHEN的子句。CASE表达式中要求至少有一个WHEN子句。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,使用简单的CASE表达式的T-SQL语句,首先在所有WHEN子句中查找与匹配的第一个表达式,并计算相应的THEN子句值。若没有匹配的表达式,执行ELSE子句。【案例7-14】显示付费方式表中用户的付费方式。显示付费方式表中用户的付费方式。SELECTorderD.订单姓名,payT.类型编号as类型,付费方式=CASE类型WHEN1THEN支付宝WHEN2THEN网上银行WHEN3THEN货到付款WHEN4THEN他人代付ELSE其他ENDFROM订单详情表orderD,付费方式表payTWHEREorderD.付费方式=payT.类型编号;,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,2)搜索式CASE表达式搜索式CASE的语法结构如下:CASE-WHENTHEN.nELSEEND说明:在语法结构中.n可选项有n个类似WHENTHEN的子句.有搜索式CASE表达式的T-SQL语句首先查找值为真的表达式.若没有一个WHEN子句的条件计算值为真,则返回ELSE表达式的值。,无,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,【案例7-15】修改上例。将【案例7-14】用搜索式CASE表达式,修改完成上例操作。SELECTorderD.订单姓名,payT.类型编号as类型,付费方式=CASEWHEN付费方式=1THEN支付宝WHEN付费方式=2THEN网上银行WHEN付费方式=3THEN货到付款WHEN付费方式=4THEN他人代付ELSE其他ENDFROM订单详情表orderD,付费方式表payTWHEREorderD.付费方式=payT.类型编号;执行结果同上例。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,无“付费方式”,7.3.4循环结构WHILE命令用于反复执行一个循环体。设置反复执行SQL语句或语句块的条件,只要指定的“条件”成立,就反复执行语句,直到“条件”不成立。其语法结构为:WHILESQL语句|语句块BREAKSQL语句|语句块CONTINUE说明:当程序执行到WHILE语句时,先判断WHILE后面条件(称为循环条件)是否为真,若是,则执行循环体,否则不执行WHILE循环体内的程序,直接向下执行。BREAK和CONTINUE两个命令与WHILE循环有关,且只用于WHILE循环体内。BREAK用于终止循环的执行,而CONTINUE用于将循环返回到WHILE开始处,重新判断条件,以决定是否重新执行新的一次循环。注意:在WHILE循环中必须有修改循环条件的语句,或有终止循环的命令,以便使循环停止,以免陷入死循环。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,循环条件,循环体,案例显示菱形程序,条件,条件,成立,假,【补充案例】一个小循环程序。DECLARExintSETx=0WHILEx3BEGINSETx=x+1PRINTx=+CONVERT(char(1),x)ENDGO循环执行三次,结果如下:x=1x=2x=3,转换数据格式,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,【案例7-16】组合使用IF和WHILE元素。在“教务管理”数据库中,创建一个dbo.numbers表,再为这个表填充100位学生的学号。每行中的列依次从“160101”增长到“160201”。,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,setnocounton;use教务管理系统;ifOBJECT_ID(dbo.numbers,u)isnotnulldroptabledbo.numbers;createtabledbo.numbers(nintnotnullprimarykey);godeclarexasint;declareidasint;setid=160101;setx=0;whilex=100begininsertintodbo.numbers(n)values(id+x);setx=x+1end,【案例7-17】一个综合的应用实例。建立一个临时的商品表Product,随机为10种商品的价格ListPrice赋值。如果产品的平均标价小于$300,则WHILE循环将价格乘2,然后选择最高价格。如果最高价格小于或等于$500,则WHILE循环重新开始,并再次将价格乘2.该循环不断地将价格乘2,直到最高价格超过$500,然后退出WHILE循环,并输出一条消息。WHILE(SELECTAVG(ListPrice)FROMProduct)$500BREAKELSECONTINUEENDPRINTToomuchforthemarkettobear;,上海市高校精品课程国家十三五规划项目,7.3流程控制语句,7.3.5其他语句1.转移语句GOTO命令与其他使用GOTO命令的高级语言一样,

温馨提示

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

评论

0/150

提交评论