SQL Server 2005 第9章 T-SQL语言.ppt
《SQL Server 2005 第9章 T-SQL语言.ppt》由会员分享,可在线阅读,更多相关《SQL Server 2005 第9章 T-SQL语言.ppt(124页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第9 9章章章章 T-SQLT-SQL语言语言语言语言批处理、脚本和注释1常量、变量和表达式2流程控制语句3系统内置函数4用户自定义函数5游标及其使用6本章重点本章重点本章重点本章重点1.T-SQL标识符、常量、变量、运算符表达式标识符、常量、变量、运算符表达式2.批处理与程序流程控制语句批处理与程序流程控制语句3.系统内置函数系统内置函数4.用户自定义函数用户自定义函数本章难点本章难点本章难点本章难点1.局部变量局部变量,全面变量的使用全面变量的使用2.判断语句判断语句,循环语句循环语句,BREAK CONTINUE语语句的使用句的使用3.内嵌表值函数的定义与使用内嵌表值函数的定义与使
2、用第第第第9 9章章章章 T-SQLT-SQL语言语言语言语言批处理、脚本和注释1常量、变量和表达式2流程控制语句3系统内置函数4用户自定义函数5游标及其使用69.19.1批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释 通常,服务器端的程序使用通常,服务器端的程序使用SQL语句来编写。语句来编写。一般而言,一个服务器端程序是由以下一些成一般而言,一个服务器端程序是由以下一些成分组成:批、注释、变量、流程控制语句等分组成:批、注释、变量、流程控制语句等9.19.1批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释1、批处理、批处理 在访问数据库时,
3、我们所写的在访问数据库时,我们所写的SQL语句不一定要一个语句不一定要一个一个地执行,也可以利用批(一个地执行,也可以利用批(Batch)的方式,将)的方式,将一个或多个一个或多个SQL语句打包,一起送到语句打包,一起送到SQL Server去处理。去处理。SQL Server会将一个批中所包含的数个会将一个批中所包含的数个SQL语句语句当做一个执行单元(当做一个执行单元(Unit),一起编译成为执行计),一起编译成为执行计划,然后再加以执行。划,然后再加以执行。批处理是包含一个或多个 SQL 语句的组,从应用程序一次性地发送到SQL Server执行SQL Server 将批处理语句编译成一
4、个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条客户端应用程序SQL Server服务器批处理语句:语句1语句2GO 使用使用GO 和和EXECUTE命令可以将批处理发送给命令可以将批处理发送给SQL Server。(1)GO 命令命令 GO 命令本身不属于命令本身不属于T-SQL语句,两个语句,两个GO之之间的间的SQL语句可以作为一个批处理,它只是作为语句可以作为一个批处理,它只是作为一个批处理的结束标志。在一个批处理的结束标志。在GO命令行里不能包命令行里不能包含任何含任何T-SQL 语句语句 USE XSGOSELECT*FROM XSDA9.19.1批处理、脚本和注释批
5、处理、脚本和注释批处理、脚本和注释批处理、脚本和注释(2)EXEC EXEC命令用于执行用户定义的函数以及存储过命令用于执行用户定义的函数以及存储过程。程。EXEC SP_HELPDB XS9.19.1批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释SELECT*FROM studentSELECT*FROM scUPDATE sc SET grade=grade+2 GOGO是批处理的标志,表示是批处理的标志,表示SQL Server将这些将这些T-SQL语句语句编译为一个执行单元,提高执行效率编译为一个执行单元,提高执行效率一般是将一些逻辑相关的业务操作语句,放置在
6、同一批中,一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务需求和代码编写者决定这完全由业务需求和代码编写者决定 哪些语句可以放在一个批处理当中?哪些语句可以放在一个批处理当中?实例:实例:USEXkCREATEVIEWV_TestASSELECT*FROMStudentSELECT*FROMCourseGO判断该段代码运行判断该段代码运行是否会出错?是否会出错?DECLAREMYVARINTGOSELECTMYVAR=33GO建立批处理应该注意的事项建立批处理应该注意的事项1.CREATE DEFAULT,CREATE PROCEDURE,CREATE RULE,CREATE
7、TRIGGER 及及CREATE VIEW 语句不能与其它语句放语句不能与其它语句放一个批处理中。一个批处理中。2.不能在一个批处理中引用其它批处理中所定义的变量。不能在一个批处理中引用其它批处理中所定义的变量。3.不能把规则和默认值绑定到表字段或用户自定义数据类型之后,立不能把规则和默认值绑定到表字段或用户自定义数据类型之后,立即在同一个批处理中使用它们;即在同一个批处理中使用它们;4.不能定义一个不能定义一个CHECK约束之后,立即在同一个批处理中使用该约约束之后,立即在同一个批处理中使用该约束。束。5.如果一个批处理中的第一个语句是执行某个存储过程的如果一个批处理中的第一个语句是执行某个
8、存储过程的EXECUTE语句,则语句,则EXECUTE关键字可以省略;如果该语句不是第一个语句关键字可以省略;如果该语句不是第一个语句则必须使用则必须使用EXECUTE关键字,关键字,EXECUTE可以省略为可以省略为“EXEC”。6.不能删除一个对象之后,在同一个批处理中再次引用这个对象;不能删除一个对象之后,在同一个批处理中再次引用这个对象;7.不能在修改表中的一个字段之后,立即在同一个批处理中引用新字不能在修改表中的一个字段之后,立即在同一个批处理中引用新字段名。段名。8.GO语句必须独占一行才能起作用。语句必须独占一行才能起作用。v注意:注意:GO语句行必须单独存在,不能含有其他语句行
9、必须单独存在,不能含有其他的的SQL语句,也不可以有注释。语句,也不可以有注释。v如果在一个批处理中有语法错误,如某条命令的如果在一个批处理中有语法错误,如某条命令的拼写错误,则整个批处理就不能被成功地编译也拼写错误,则整个批处理就不能被成功地编译也就无法执行。如果在批处理中某条语句执行错误,就无法执行。如果在批处理中某条语句执行错误,如违返了规则,则它仅影响该语句的执行,并不如违返了规则,则它仅影响该语句的执行,并不影响其他语句的执行。影响其他语句的执行。9.19.1批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释9.19.1批处理、脚本和注释批处理、脚本和注释批处理
10、、脚本和注释批处理、脚本和注释2、脚本、脚本v脚本是批处理的存在方式,将一个或多个批处理组织到一脚本是批处理的存在方式,将一个或多个批处理组织到一起就是一个脚本,即一系列按起就是一个脚本,即一系列按 顺序提交的批处理。顺序提交的批处理。v SQL脚本中可以包含一个或多个批处脚本中可以包含一个或多个批处 理。使用脚本可以理。使用脚本可以将创建和维护数据库时的操作步骤保存将创建和维护数据库时的操作步骤保存 为一个磁盘文件。为一个磁盘文件。脚本文件以脚本文件以.sql为扩展名。为扩展名。v将将T-SQL语句保存为脚本文件,不仅可以建立起可再用语句保存为脚本文件,不仅可以建立起可再用 的模块化代码,还
11、可以在不同计算机之间传送的模块化代码,还可以在不同计算机之间传送T-SQL语语 句,使两台计算机执行同样的操作。句,使两台计算机执行同样的操作。v查询分析器是建立、编辑和使用脚本的最好环境。查询分析器是建立、编辑和使用脚本的最好环境。9.19.1批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释3、注释、注释 也称为注解,是写在程序代码中的说明性文字,也称为注解,是写在程序代码中的说明性文字,对程序的结构及功能进行文字说明。注释内容不对程序的结构及功能进行文字说明。注释内容不被系统编译,也不被程序执行。使用注释对代码被系统编译,也不被程序执行。使用注释对代码进行说明,不仅
12、能使程序易读易懂,而且有助于进行说明,不仅能使程序易读易懂,而且有助于日后的管理和维护。日后的管理和维护。9.19.1批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释批处理、脚本和注释(1)行内注释行内注释行内注释的语法格式为:行内注释的语法格式为:注释文本注释文本从双连字符从双连字符“”开始到行尾均为注释,但前面可以有执行开始到行尾均为注释,但前面可以有执行的代码。的代码。对于多行注释,必须在每个注释行的开始都是用双连字符。对于多行注释,必须在每个注释行的开始都是用双连字符。(2)块注释)块注释/*注释文本注释文本*/或:或:/*注释文本注释文本*/第第第第9 9章章章章 T-SQLT
13、-SQL语言语言语言语言批处理、脚本和注释1常量、变量和表达式2流程控制语句3系统内置函数4用户自定义函数5游标及其使用69.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式1、常量、常量 常量是指在程序运行过程中值不变的量。常常量是指在程序运行过程中值不变的量。常量又称为字面值或标量值,是表示一个特定数据量又称为字面值或标量值,是表示一个特定数据值的符号。值的符号。根据常量值的不同类型,分为字符串常量、根据常量值的不同类型,分为字符串常量、整型常量、日期时间常量、货币常量等。常量的整型常量、日期时间常量、货币常量等。常量的格式取决于它所表示的值的数据类型。格式
14、取决于它所表示的值的数据类型。9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式2、变量、变量 变量用来存放程序计算中需要的数据或中间变量用来存放程序计算中需要的数据或中间结果,其中的值可以改变,只有在程序执行的时结果,其中的值可以改变,只有在程序执行的时候才有效。程序结束后变量不再有效。候才有效。程序结束后变量不再有效。T-SQL变量分为局部变量和全局变量。变量分为局部变量和全局变量。9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29
15、.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式例例9.3 局部变量
16、的定义与赋值局部变量的定义与赋值DECLARE MY_VAR1 VARCHAR(5),MY_VAR2 CHAR(8)SELECT MY_VAR1=你好!,MY_VAR2=happyPRINT MY_VAR1+MY_VAR2SELECT MY_VAR1+MY_VAR29.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式例例9.4 创建局部变量创建局部变量C,然后给,然后给C赋值,赋值,最后显示最后显示CDECLARE C CHAR(14)SET C=中华人民共和国SELECT C9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式例
17、例9.5 查询查询XS表,将返回的记录数赋给局部变量表,将返回的记录数赋给局部变量NUMuse xsglgodeclare num intset num=(select count(*)from xs)-或select num=count(*)from xsselect num as 总人数go9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式例例9.6 查询查询XS表中女同学的记录表中女同学的记录use xsglgodeclare s char(2)set s=女select 学号,姓名,性别,出生时间,专业from xs where 性别=sgoDECLA
18、RE username varchar(30)SELECT username=姓名FROM XSDAWHERE 学号=200501SELECT username9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式例:使用查询给变量赋值例:使用查询给变量赋值注:如果查询会返回注:如果查询会返回2条以上的记录,那么只有最后一条才会存入变条以上的记录,那么只有最后一条才会存入变量中,如果没有查到任何数据,则变量的值不变。量中,如果没有查到任何数据,则变量的值不变。(默认值为(默认值为NULL)9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量
19、和表达式练习练习:1、创建局部变量、创建局部变量var1、var2,并赋值,然并赋值,然后输出变量的值后输出变量的值2、创建一个名为、创建一个名为xb的局部变量,并在的局部变量,并在SELECT语句中使用该局部变量查找表语句中使用该局部变量查找表XSDA中所有女中所有女同学的学号和姓名同学的学号和姓名9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式(2)全局变量)全局变量v全局变量是由系统提供且预先声明的变量,通全局变量是由系统提供且预先声明的变量,通过在名称前保留两个过在名称前保留两个符号区别于局部变量。符号区别于局部变量。v全局变量在所有存储过程中随时有
20、效,用户利全局变量在所有存储过程中随时有效,用户利用全局变量,可以访问服务器的相关信息或者用全局变量,可以访问服务器的相关信息或者有关操作的信息。有关操作的信息。9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式使用全局变量时,要注意以下原则:使用全局变量时,要注意以下原则:1.用户只能引用;用户只能引用;2.引用全局变量时,变量名前一定要加上引用全局变量时,变量名前一定要加上标记;标记;3.用户不能定义和全局变量同名的局部变量,用户不能定义和全局变量同名的局部变量,否则将产生错误。否则将产生错误。9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表
21、达式常量、变量和表达式9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式3、运算符与表达式、运算符与表达式vSQL Server 2005提供的常用运算符共有四提供的常用运算符共有四类:算术运算符、比较运算符、逻辑运算符、类:算术运算符、比较运算符、逻辑运算符、字符串连接运算符字符串连接运算符(1)算术运算符)算术运算符 算术运算符包括算术运算符包括+,-,*,/和求模,参与和求模,参与运算的数据是数值类型数据,其运算结果也是运算的数据是数值类型数据,其运算结果也是数值类型数据数值类型数据 9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量
22、、变量和表达式v字符串连接运算符字符串连接运算符 字符串连接运算符(字符串连接运算符(+)可以实现字符串之)可以实现字符串之间的连接。参与字符串连接运算的数据只能是间的连接。参与字符串连接运算的数据只能是字符数据类型。字符数据类型。v比较运算符比较运算符 比较运算符又称为关系运算符,用于测试两比较运算符又称为关系运算符,用于测试两个表达式的值之间的关系。个表达式的值之间的关系。9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式v逻辑运算符:逻辑运算符用于对某个条件进行测逻辑运算符:逻辑运算符用于对某个条件进行测试。与比较运算符一样,逻辑运算符运算的结果试。与比
23、较运算符一样,逻辑运算符运算的结果也返回一个为也返回一个为TRUE 或或 FALSE 的逻辑值的逻辑值运算符运算规则AND如果两个操作数值都为如果两个操作数值都为TRUE,运算结果为运算结果为 TRUE。OR如果两个操作数中有一个为如果两个操作数中有一个为TRUE,运算结果为运算结果为TRUE。NOT若一个操作数值为若一个操作数值为TRUE,运算结果为运算结果为FALSE,否则为否则为TRUE。ALL如果每个操作数值都为如果每个操作数值都为TRUE,运算结果为运算结果为TRUE。ANY在一系列操作数中只要有一个为在一系列操作数中只要有一个为 TRUE,运算结果为运算结果为TRUE。BETWEE
24、N如果操作数在指定的范围内,运算结果为如果操作数在指定的范围内,运算结果为TRUE。EXISTS如果子查询包含一些行,运算结果为如果子查询包含一些行,运算结果为TRUE。IN如果操作数值等于表达式列表中的一个,运算结果为如果操作数值等于表达式列表中的一个,运算结果为TRUE。LIKE如果操作数与一种模式相匹配,运算结果为如果操作数与一种模式相匹配,运算结果为TRUE。SOME如果在一系列操作数中,有些值为如果在一系列操作数中,有些值为TRUE,运算结果为运算结果为TRUE。9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式例例9.13 select姓名姓名,性
25、性别别,专业专业fromxswhere性性别别=女女AND(专业专业=信息管理信息管理OR专业专业=网网络络工程工程)9.29.2常量、变量和表达式常量、变量和表达式常量、变量和表达式常量、变量和表达式5、运算符的优先级、运算符的优先级运算符优先级决定执行运算的先后次序。运算符优先级决定执行运算的先后次序。第第第第9 9章章章章 T-SQLT-SQL语言语言语言语言批处理、脚本和注释1常量、变量和表达式2流程控制语句3系统内置函数4用户自定义函数5游标及其使用69.39.3流程控制语句流程控制语句流程控制语句流程控制语句 为了实现程序的可读性和条理性,经常会遇到一为了实现程序的可读性和条理性,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server 2005 第9章 T-SQL语言 语言
限制150内