《SQL第8章T-SQL编程.ppt》由会员分享,可在线阅读,更多相关《SQL第8章T-SQL编程.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SqlSql server 2005 server 2005程序设计与管理基础程序设计与管理基础Sql server 2005程序设计与管理基础1第第第第8 8章章章章 T-SQLT-SQL编程编程编程编程8.1 8.1 Transact-SQLTransact-SQL简介简介简介简介 8.2 8.2 T-SQLT-SQL中的批处理中的批处理中的批处理中的批处理 8.3 8.3 T-SQLT-SQL中的注释中的注释中的注释中的注释8.4 8.4 T-SQLT-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换 8.5 8.5 T-SQLT-SQL运算符运算符运算符运算符8.6 8.
2、6 T-SQLT-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量8.7 8.7 T-SQLT-SQL的流程控制的流程控制的流程控制的流程控制8.8 8.8 T-SQLT-SQL中常用函数中常用函数中常用函数中常用函数28.1 Transact-SQL8.1 Transact-SQL8.1 Transact-SQL简介简介简介简介简介简介 结构化查询语言(结构化查询语言(结构化查询语言(结构化查询语言(SQLSQL)是由美国国家标准协会)是由美国国家标准协会)是由美国国家标准协会)是由美国国家标准协会(American National Standards InstituteAm
3、erican National Standards Institute,ANSIANSI)和国际)和国际)和国际)和国际标准化组织(标准化组织(标准化组织(标准化组织(International Standards OrganizationInternational Standards Organization,ISOISO)定义的标准,而)定义的标准,而)定义的标准,而)定义的标准,而T-SQLT-SQL是是是是MicrosoftMicrosoft公司对此标准公司对此标准公司对此标准公司对此标准的一个实现。的一个实现。的一个实现。的一个实现。T-SQLT-SQL是在是在是在是在SQLSQL上
4、发展而来的,上发展而来的,上发展而来的,上发展而来的,T-SQLT-SQL在在在在SQLSQL的基的基的基的基础上添加了流程控制,是础上添加了流程控制,是础上添加了流程控制,是础上添加了流程控制,是SQLSQL语言的扩展。因此,语言的扩展。因此,语言的扩展。因此,语言的扩展。因此,SQLSQL是几乎所有的关系型数据库都支持的语言,而是几乎所有的关系型数据库都支持的语言,而是几乎所有的关系型数据库都支持的语言,而是几乎所有的关系型数据库都支持的语言,而T-SQLT-SQL是是是是Microsoft SQL serverMicrosoft SQL server支持的语言。支持的语言。支持的语言。支
5、持的语言。38.1 Transact-SQL8.1 Transact-SQL8.1 Transact-SQL简介简介简介简介简介简介 在在在在Microsoft SQL server 2005Microsoft SQL server 2005系统中,系统中,系统中,系统中,T-SQLT-SQL可以可以可以可以创建、维护、保护数据库对象,并且可以操作对象中的创建、维护、保护数据库对象,并且可以操作对象中的创建、维护、保护数据库对象,并且可以操作对象中的创建、维护、保护数据库对象,并且可以操作对象中的数据,所以数据,所以数据,所以数据,所以Transact-SQLTransact-SQL语言是一种
6、完整的语言。根语言是一种完整的语言。根语言是一种完整的语言。根语言是一种完整的语言。根据据据据T-SQLT-SQL语言的执行功能特点,可以将语言的执行功能特点,可以将语言的执行功能特点,可以将语言的执行功能特点,可以将T-SQLT-SQL语言分为语言分为语言分为语言分为三种类型:三种类型:三种类型:三种类型:n n 数据定义语言数据定义语言数据定义语言数据定义语言n n 数据操纵语言数据操纵语言数据操纵语言数据操纵语言n n 数据控制语言数据控制语言数据控制语言数据控制语言48.1 Transact-SQL8.1 Transact-SQL8.1 Transact-SQL简介简介简介简介简介简介
7、数数数数据据据据定定定定义义义义语语语语言言言言(Data Data Data Data Definition Definition Definition Definition LanguageLanguageLanguageLanguage,DDLDDLDDLDDL)数数数数据据据据定定定定义义义义语语语语言言言言DDLDDL用用用用于于于于在在在在SQLSQL中中中中创创创创建建建建或或或或修修修修改改改改数数数数据据据据库库库库及及及及数数数数据据据据库库库库对对对对象象象象,如如如如创创创创建建建建表表表表、视视视视图图图图、存存存存储储储储过过过过程程程程、函函函函数数数数等等等等数
8、数数数据据据据库库库库对对对对象象象象。在在在在DDLDDL中中中中主主主主要要要要包包包包括括括括CREATECREATE语语语语句句句句、ALTERALTER语语语语句句句句和和和和DROPDROP语语语语句,分别用于创建、修改、删除数据库及数据库对象。句,分别用于创建、修改、删除数据库及数据库对象。句,分别用于创建、修改、删除数据库及数据库对象。句,分别用于创建、修改、删除数据库及数据库对象。58.1 Transact-SQL8.1 Transact-SQL简介简介简介简介数数数数 据据据据 操操操操 纵纵纵纵 语语语语 言言言言(Data Data Data Data Manipula
9、tion Manipulation Manipulation Manipulation LanguageLanguageLanguageLanguage,DMLDMLDMLDML)数数数数据据据据操操操操纵纵纵纵语语语语言言言言DMLDML是是是是指指指指用用用用来来来来操操操操纵纵纵纵数数数数据据据据库库库库中中中中数数数数据据据据的的的的语语语语句句句句,主主主主要要要要包包包包括括括括SELECTSELECT语语语语句句句句、INSERTINSERT语语语语句句句句、UPDATEUPDATE语语语语句、句、句、句、DELETEDELETE语句、语句、语句、语句、CURSORCURSOR语
10、句等。语句等。语句等。语句等。数数数数据据据据控控控控制制制制语语语语言言言言(Data Data Data Data Control Control Control Control LanguageLanguageLanguageLanguage,DCLDCLDCLDCL)数数数数据据据据控控控控制制制制语语语语言言言言DCLDCL是是是是用用用用来来来来确确确确保保保保数数数数据据据据库库库库安安安安全全全全的的的的语语语语句句句句,主主主主要要要要用用用用于于于于控控控控制制制制数数数数据据据据库库库库组组组组件件件件的的的的存存存存取取取取许许许许可可可可、存存存存取取取取权权权权限限
11、限限等等等等权权权权限限限限管管管管理理理理问问问问题题题题。其其其其主要包括主要包括主要包括主要包括GRANTGRANT语句、语句、语句、语句、REVOKEREVOKE语句、语句、语句、语句、DENYDENY。6第第第第8 8章章章章 T-SQLT-SQL编程编程编程编程8.1 8.1 Transact-SQLTransact-SQL简介简介简介简介 8.2 8.2 T-SQLT-SQL中的批处理中的批处理中的批处理中的批处理 8.3 8.3 T-SQLT-SQL中的注释中的注释中的注释中的注释8.4 8.4 T-SQLT-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换 8.
12、5 8.5 T-SQLT-SQL运算符运算符运算符运算符8.6 8.6 T-SQLT-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量8.7 8.7 T-SQLT-SQL的流程控制的流程控制的流程控制的流程控制8.8 8.8 T-SQLT-SQL中常用函数中常用函数中常用函数中常用函数78.2 T-SQL8.2 T-SQL8.2 T-SQL中的批处理中的批处理中的批处理中的批处理中的批处理中的批处理 在在在在SQL SQL Server2005Server2005中中中中,可可可可以以以以一一一一次次次次执执执执行行行行多多多多个个个个T-SQLT-SQL语语语语句句句句,这这这
13、这些些些些多多多多个个个个T-SQLT-SQL语语语语句句句句称称称称为为为为“批批批批”。SQL SQL Server2005Server2005会会会会将将将将一一一一批批批批T-SQLT-SQL语语语语句句句句当当当当成成成成一一一一个个个个执执执执行行行行单单单单元元元元,将将将将其其其其编编编编译译译译后后后后一一一一次次次次执执执执行行行行,而不是将一个个而不是将一个个而不是将一个个而不是将一个个T-SQLT-SQL语句编译后再一个个执行。语句编译后再一个个执行。语句编译后再一个个执行。语句编译后再一个个执行。在在在在SQL SQL Server2005Server2005中中中中
14、同同同同样样样样允允允允许许许许一一一一次次次次使使使使用用用用多多多多个个个个批批批批,不不不不同同同同的的的的批批批批之之之之间间间间用用用用“GO”GO”来来来来分分分分隔隔隔隔。查查查查询询询询编编编编辑辑辑辑器器器器会会会会自自自自动动动动根根根根据据据据GOGO指指指指令令令令来将来将来将来将T-SQLT-SQL语句分为多个批来编译执行。语句分为多个批来编译执行。语句分为多个批来编译执行。语句分为多个批来编译执行。88.2 T-SQL8.2 T-SQL8.2 T-SQL中的批处理中的批处理中的批处理中的批处理中的批处理中的批处理注意:注意:注意:注意:1 1、gogo并并并并不不不
15、不是是是是T-SQLT-SQL语语语语句句句句,只只只只有有有有查查查查询询询询编编编编辑辑辑辑器器器器才才才才能能能能识识识识别别别别并并并并处处处处理,编写其他应用程序就不能使用理,编写其他应用程序就不能使用理,编写其他应用程序就不能使用理,编写其他应用程序就不能使用gogo指令。指令。指令。指令。2 2、由由由由于于于于批批批批与与与与批批批批之之之之间间间间是是是是独独独独立立立立的的的的,所所所所以以以以,当当当当其其其其中中中中一一一一个个个个批批批批出出出出现错误时,不会影响其他批的运行。现错误时,不会影响其他批的运行。现错误时,不会影响其他批的运行。现错误时,不会影响其他批的运
16、行。9第第第第8 8章章章章 T-SQLT-SQL编程编程编程编程8.1 8.1 Transact-SQLTransact-SQL简介简介简介简介 8.2 8.2 T-SQLT-SQL中的批处理中的批处理中的批处理中的批处理 8.3 8.3 T-SQLT-SQL中的注释中的注释中的注释中的注释8.4 8.4 T-SQLT-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换 8.5 8.5 T-SQLT-SQL运算符运算符运算符运算符8.6 8.6 T-SQLT-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量8.7 8.7 T-SQLT-SQL的流程控制的流程控制的流
17、程控制的流程控制8.8 8.8 T-SQLT-SQL中常用函数中常用函数中常用函数中常用函数108.3 T-SQL8.3 T-SQL8.3 T-SQL中的注释中的注释中的注释中的注释中的注释中的注释 在在在在T-SQLT-SQLT-SQLT-SQL程程程程序序序序里里里里加加加加入入入入注注注注释释释释语语语语句句句句,可可可可以以以以增增增增加加加加程程程程序序序序的的的的可可可可读读读读性性性性。SQL SQL SQL SQL ServerServerServerServer不不不不会会会会对对对对注注注注释释释释的的的的内内内内容容容容进进进进行行行行编编编编辑辑辑辑和和和和执执执执行行
18、行行,在在在在T-SQLT-SQLT-SQLT-SQL中中中中支支支支持两种注释方式。持两种注释方式。持两种注释方式。持两种注释方式。1 1 1 1、-注释注释注释注释 -注注注注释释释释的的的的有有有有效效效效范范范范围围围围只只只只能能能能到到到到该该该该行行行行结结结结束束束束的的的的地地地地方方方方,也也也也就就就就是是是是说说说说,从从从从开开开开始始始始,到到到到本本本本行行行行结结结结束束束束为为为为止止止止,都都都都可可可可以以以以是是是是注注注注释释释释的的的的内内内内容容容容,如如如如果果果果有有有有多多多多行注释内容的话,每一行的最前面都必须加上行注释内容的话,每一行的最
19、前面都必须加上行注释内容的话,每一行的最前面都必须加上行注释内容的话,每一行的最前面都必须加上-。2 2 2 2、/*/*/*/*/*/*/*/注释注释注释注释 当当当当要要要要进进进进行行行行比比比比较较较较长长长长的的的的注注注注释释释释时时时时,可可可可以以以以使使使使用用用用/*/*/*/*/*/*/*/注注注注释释释释,/*/*/*/*/*/*/*/可可可可以以以以对对对对多多多多行行行行语语语语句句句句进进进进行行行行注注注注释释释释,其其其其有有有有效效效效范范范范围围围围是是是是从从从从“/*/*/*/*”开始,到开始,到开始,到开始,到“*/”结束,中间可以跨越多行。结束,中
20、间可以跨越多行。结束,中间可以跨越多行。结束,中间可以跨越多行。11第第第第8 8章章章章 T-SQLT-SQL编程编程编程编程8.1 8.1 Transact-SQLTransact-SQL简介简介简介简介 8.2 8.2 T-SQLT-SQL中的批处理中的批处理中的批处理中的批处理 8.3 8.3 T-SQLT-SQL中的注释中的注释中的注释中的注释8.4 8.4 T-SQLT-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换 8.5 8.5 T-SQLT-SQL运算符运算符运算符运算符8.6 8.6 T-SQLT-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变
21、量8.7 8.7 T-SQLT-SQL的流程控制的流程控制的流程控制的流程控制8.8 8.8 T-SQLT-SQL中常用函数中常用函数中常用函数中常用函数128.4 T-SQL8.4 T-SQL8.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换在在在在SQL ServerSQL Server中,无论是数据表的字段、常量、变量、中,无论是数据表的字段、常量、变量、中,无论是数据表的字段、常量、变量、中,无论是数据表的字段、常量、变量、表达式还是参数,都具有一个相对应的数据类型。数据类表达式还是参数,都具有一个相对应的数据类型。数据类表达式还是参
22、数,都具有一个相对应的数据类型。数据类表达式还是参数,都具有一个相对应的数据类型。数据类型是一种属性,用于指定对象可保存的数据的类型。型是一种属性,用于指定对象可保存的数据的类型。型是一种属性,用于指定对象可保存的数据的类型。型是一种属性,用于指定对象可保存的数据的类型。1 1、使用、使用、使用、使用CASTCAST转换数据类型转换数据类型转换数据类型转换数据类型当要对不同类型的数据进行运算时,就必须将其转换成当要对不同类型的数据进行运算时,就必须将其转换成当要对不同类型的数据进行运算时,就必须将其转换成当要对不同类型的数据进行运算时,就必须将其转换成相同的数据类型才能进行运算。在相同的数据类
23、型才能进行运算。在相同的数据类型才能进行运算。在相同的数据类型才能进行运算。在SQL ServerSQL Server里提供了两里提供了两里提供了两里提供了两个函数可以进行数据类型的转换,其中一个是个函数可以进行数据类型的转换,其中一个是个函数可以进行数据类型的转换,其中一个是个函数可以进行数据类型的转换,其中一个是CASTCAST。138.4 T-SQL8.4 T-SQL8.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换语法格式如下:语法格式如下:语法格式如下:语法格式如下:CASTCAST(expression AS expression
24、 AS data_type(lengthdata_type(length))其中其中其中其中expressionexpression为任何有效的表达式,为任何有效的表达式,为任何有效的表达式,为任何有效的表达式,data_typedata_type为要为要为要为要转换的数据类型,转换的数据类型,转换的数据类型,转换的数据类型,lengthlength为数据类型的长度,一般只有为数据类型的长度,一般只有为数据类型的长度,一般只有为数据类型的长度,一般只有在在在在ncharnchar、nvarcharnvarchar、charchar、varcharvarchar、binarybinary和和和和
25、varbinaryvarbinary这几种数据类型才需要使用,是可选参数。这几种数据类型才需要使用,是可选参数。这几种数据类型才需要使用,是可选参数。这几种数据类型才需要使用,是可选参数。148.4 T-SQL8.4 T-SQL8.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换例例例例1 1:查看查看查看查看northwindnorthwind数据库数据库数据库数据库productsproducts表中产品及单价,表中产品及单价,表中产品及单价,表中产品及单价,并在一列中显示出来并在一列中显示出来并在一列中显示出来并在一列中显示出来.程序代码
26、如下:程序代码如下:程序代码如下:程序代码如下:SELECT productname+SELECT productname+的单价为:的单价为:的单价为:的单价为:+CAST(unitprice as varchar(10)+CAST(unitprice as varchar(10)+元元元元 AS AS 产品介绍产品介绍产品介绍产品介绍FROM productsFROM products158.4 T-SQL8.4 T-SQL8.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换 同步任务同步任务同步任务同步任务11:查看:查看:查看:查看no
27、rthwindnorthwind数据库数据库数据库数据库ordersorders表中订单表中订单表中订单表中订单号和订单时间,并在一列中显示出来号和订单时间,并在一列中显示出来号和订单时间,并在一列中显示出来号和订单时间,并在一列中显示出来SELECT CAST(orderid as varchar(10)+SELECT CAST(orderid as varchar(10)+的时间为:的时间为:的时间为:的时间为:+CAST(orderdate as varchar(20)AS+CAST(orderdate as varchar(20)AS 订订订订单时间单时间单时间单时间FROM orde
28、rsFROM orders168.4 T-SQL8.4 T-SQL8.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换2 2、使用、使用、使用、使用CONVERTCONVERT转换数据类型转换数据类型转换数据类型转换数据类型CONVERTCONVERT函数与函数与函数与函数与CASTCAST函数类似,作用也是转换数据类型,函数类似,作用也是转换数据类型,函数类似,作用也是转换数据类型,函数类似,作用也是转换数据类型,其语法格式如下:其语法格式如下:其语法格式如下:其语法格式如下:CONVERTCONVERT (data_type(lengthd
29、ata_type(length),expression,styleexpression,style)data_typedata_type为要转换的数据类型为要转换的数据类型为要转换的数据类型为要转换的数据类型lengthlength为数据类型的长度为数据类型的长度为数据类型的长度为数据类型的长度expressionexpression为任何有效的表达式为任何有效的表达式为任何有效的表达式为任何有效的表达式stylestyle是样式是样式是样式是样式,一般用于将一般用于将一般用于将一般用于将datetimedatetime或或或或smalldatetimesmalldatetime数据转换数据转
30、换数据转换数据转换为字符数据(为字符数据(为字符数据(为字符数据(ncharnchar、nvarcharnvarchar、charchar、varcharvarchar数据类型)的数据类型)的数据类型)的数据类型)的日期格式的样式;或者用于将日期格式的样式;或者用于将日期格式的样式;或者用于将日期格式的样式;或者用于将floatfloat、realreal、moneymoney或或或或smallmoneysmallmoney数据转换为字符数据的字符串格式。如果数据转换为字符数据的字符串格式。如果数据转换为字符数据的字符串格式。如果数据转换为字符数据的字符串格式。如果stylestyle为为为为
31、NULLNULL,则返回的结果也为,则返回的结果也为,则返回的结果也为,则返回的结果也为NULLNULL。178.4 T-SQL8.4 T-SQL8.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换例例例例2 2:查查查查看看看看northwindnorthwind数数数数据据据据库库库库ordersorders表表表表中中中中订订订订单单单单号号号号、订订订订购购购购日期日期日期日期、到货日期到货日期到货日期到货日期、发货日期发货日期发货日期发货日期。select orderid as select orderid as 订单号订单号订单号订
32、单号,convert(varchar(20),orderdate,1)as convert(varchar(20),orderdate,1)as 订购日期订购日期订购日期订购日期,convert(varchar(20),requireddate,102)as convert(varchar(20),requireddate,102)as 到货日期到货日期到货日期到货日期,convert(varchar(20),shippeddate,103)as convert(varchar(20),shippeddate,103)as 发货日期发货日期发货日期发货日期from ordersfrom ord
33、ers 同步任务同步任务同步任务同步任务22:查看:查看:查看:查看northwindnorthwind数据库数据库数据库数据库productsproducts表中单价表中单价表中单价表中单价188.4 T-SQL8.4 T-SQL8.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换3 3 隐式数据类型转换隐式数据类型转换隐式数据类型转换隐式数据类型转换在在在在进进进进行行行行不不不不同同同同类类类类型型型型的的的的数数数数据据据据运运运运算算算算时时时时,不不不不一一一一定定定定都都都都必必必必须须须须要要要要使使使使用用用用CASTCAST
34、或或或或CONVERTCONVERT来来来来进进进进行行行行数数数数据据据据类类类类型型型型转转转转换换换换,在在在在SQL SQL ServerServer里里里里,系系系系统统统统会会会会自自自自动动动动将将将将一一一一些些些些数数数数据据据据类类类类型型型型进进进进行行行行转转转转换换换换,这这这这种种种种转转转转换换换换称称称称为为为为“隐隐隐隐式式式式转转转转换换换换”。而而而而用用用用CASTCAST或或或或CONVERTCONVERT转转转转换换换换数数数数据据据据类类类类型型型型称称称称为为为为“显式转换显式转换显式转换显式转换”。198.4 T-SQL8.4 T-SQL8.4
35、 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换 例例例例3 3:查查查查看看看看northwindnorthwind数数数数据据据据库库库库productsproducts表表表表中中中中产产产产品品品品库库库库存存存存量量量量所值的资金所值的资金所值的资金所值的资金SELECT productname,unitprice*unitsinstock AS SELECT productname,unitprice*unitsinstock AS jiyazijinjiyazijinFROM productsFROM products 同步任务同步
36、任务同步任务同步任务33:查看查看查看查看northwindnorthwind数据库数据库数据库数据库order detailsorder details表中表中表中表中每个订单的总金额每个订单的总金额每个订单的总金额每个订单的总金额SELECT orderid,sum(unitprice*quantity)AS jineSELECT orderid,sum(unitprice*quantity)AS jineFROM order detailsFROM order detailsGROUP BY orderidGROUP BY orderid20第第第第8 8章章章章 T-SQLT-SQL编
37、程编程编程编程8.1 8.1 Transact-SQLTransact-SQL简介简介简介简介 8.2 8.2 T-SQLT-SQL中的批处理中的批处理中的批处理中的批处理 8.3 8.3 T-SQLT-SQL中的注释中的注释中的注释中的注释8.4 8.4 T-SQLT-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换 8.5 8.5 T-SQLT-SQL运算符运算符运算符运算符8.6 8.6 T-SQLT-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量8.7 8.7 T-SQLT-SQL的流程控制的流程控制的流程控制的流程控制8.8 8.8 T-SQLT-SQL
38、中常用函数中常用函数中常用函数中常用函数218.5 T-SQL8.5 T-SQL8.5 T-SQL运算符运算符运算符运算符运算符运算符n n算术运算符算术运算符算术运算符算术运算符n n逻辑运算符逻辑运算符逻辑运算符逻辑运算符n n字符串连接运算符字符串连接运算符字符串连接运算符字符串连接运算符n n一元运算符一元运算符一元运算符一元运算符n n比较运算符比较运算符比较运算符比较运算符 22第第第第8 8章章章章 T-SQLT-SQL编程编程编程编程8.1 8.1 Transact-SQLTransact-SQL简介简介简介简介 8.2 8.2 T-SQLT-SQL中的批处理中的批处理中的批处
39、理中的批处理 8.3 8.3 T-SQLT-SQL中的注释中的注释中的注释中的注释8.4 8.4 T-SQLT-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换 8.5 8.5 T-SQLT-SQL运算符运算符运算符运算符8.6 8.6 T-SQLT-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量8.7 8.7 T-SQLT-SQL的流程控制的流程控制的流程控制的流程控制8.8 8.8 T-SQLT-SQL中常用函数中常用函数中常用函数中常用函数238.6 T-SQL8.6 T-SQL8.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常
40、量和变量中的常量和变量1 1、常量、常量、常量、常量 常量常量常量常量,也称为文字值或标量值,是一个代表,也称为文字值或标量值,是一个代表,也称为文字值或标量值,是一个代表,也称为文字值或标量值,是一个代表特定值特定值特定值特定值的符号的符号的符号的符号,是一个,是一个,是一个,是一个不变不变不变不变的值。常量的的值。常量的的值。常量的的值。常量的格式取决于格式取决于格式取决于格式取决于它所表示它所表示它所表示它所表示的的的的值的数据类型值的数据类型值的数据类型值的数据类型。字符串常量字符串常量字符串常量字符串常量:a:a,Im backIm back,UnicodeUnicode常量常量常量
41、常量:N a:N a,N N BitBit常量常量常量常量:1:1,0 0 DatetimeDatetime常常常常 量量量量:August August 3,20063,2006,2006-8-32006-8-3,06/08/0606/08/06 IntegerInteger常常常常量量量量,decimaldecimal常常常常量量量量,floatfloat和和和和realreal常常常常量量量量,moneymoney常常常常量量量量248.6 T-SQL8.6 T-SQL8.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量2 2、变量、变量
42、、变量、变量 T-SQLT-SQL中的变量可以分为中的变量可以分为中的变量可以分为中的变量可以分为全局变量全局变量全局变量全局变量和和和和局部变量局部变量局部变量局部变量两两两两种,全局变量是以种,全局变量是以种,全局变量是以种,全局变量是以开头命名的变量,开头命名的变量,开头命名的变量,开头命名的变量,局部变量局部变量局部变量局部变量是以是以是以是以开头命名的变量。开头命名的变量。开头命名的变量。开头命名的变量。全局变量是全局变量是全局变量是全局变量是SQL SERVER SQL SERVER 系统提供并赋值的变量。系统提供并赋值的变量。系统提供并赋值的变量。系统提供并赋值的变量。用户不能建
43、立及修改全局变量用户不能建立及修改全局变量用户不能建立及修改全局变量用户不能建立及修改全局变量。全局变量是一组特殊的。全局变量是一组特殊的。全局变量是一组特殊的。全局变量是一组特殊的函数,它们的名称是以函数,它们的名称是以函数,它们的名称是以函数,它们的名称是以开始开始开始开始,且不需要任何参数。且不需要任何参数。且不需要任何参数。且不需要任何参数。SQL SERVERSQL SERVER提供提供提供提供3333个全局变量。个全局变量。个全局变量。个全局变量。258.6 T-SQL8.6 T-SQL8.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量
44、和变量ERRORERROR:返回返回返回返回最后最后最后最后执行的一条执行的一条执行的一条执行的一条T-SQLT-SQL语句语句语句语句的的的的错误代码错误代码错误代码错误代码IdentityIdentity:返回返回返回返回最后插入最后插入最后插入最后插入的的的的标识值标识值标识值标识值ROWCOUNTROWCOUNT:返回受到返回受到返回受到返回受到上一语句影响的行数上一语句影响的行数上一语句影响的行数上一语句影响的行数VERSIONVERSION:返回当前的返回当前的返回当前的返回当前的SQL ServerSQL Server安装的版本信息安装的版本信息安装的版本信息安装的版本信息例例例
45、例4 4:查看版本信息查看版本信息查看版本信息查看版本信息print versionprint version例例例例5 5:查看查看查看查看selectselect后的记录集里的记录数后的记录集里的记录数后的记录集里的记录数后的记录集里的记录数select*from employeesselect*from employeesprint print 一共查询了一共查询了一共查询了一共查询了+CAST(rowcount as+CAST(rowcount as varchar(5)+varchar(5)+条记录条记录条记录条记录 268.6 T-SQL8.6 T-SQL8.6 T-SQL中的常量
46、和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量 3 3、局部变量、局部变量、局部变量、局部变量 指在批处理或脚本中用来保存数据值的对象指在批处理或脚本中用来保存数据值的对象指在批处理或脚本中用来保存数据值的对象指在批处理或脚本中用来保存数据值的对象,局部变量局部变量局部变量局部变量名总是以名总是以名总是以名总是以符号开始符号开始符号开始符号开始,必须符合标识符命名规则。在必须符合标识符命名规则。在必须符合标识符命名规则。在必须符合标识符命名规则。在使用使用使用使用一个一个一个一个局部变量前局部变量前局部变量前局部变量前,必须必须必须必须使用使用使用使用DECLAR
47、EDECLARE语句来语句来语句来语句来声明声明声明声明这个这个这个这个局部变量,指定其变量名和数据类型。局部变量,指定其变量名和数据类型。局部变量,指定其变量名和数据类型。局部变量,指定其变量名和数据类型。局部变量声明的语法格式为:局部变量声明的语法格式为:局部变量声明的语法格式为:局部变量声明的语法格式为:DECLARE DECLARE 局部变量名局部变量名局部变量名局部变量名 数据类型数据类型数据类型数据类型,n,n278.6 T-SQL8.6 T-SQL8.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量局部变量赋值:局部变量赋值:局部
48、变量赋值:局部变量赋值:SET SET 局部变量名局部变量名局部变量名局部变量名=表达式表达式表达式表达式也可以使用也可以使用也可以使用也可以使用selectselect语句语句语句语句 select select 局部变量名局部变量名局部变量名局部变量名=表达式表达式表达式表达式,n,n288.6 T-SQL8.6 T-SQL8.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量注意:注意:注意:注意:声明的变量名,其第一个字符必须是声明的变量名,其第一个字符必须是声明的变量名,其第一个字符必须是声明的变量名,其第一个字符必须是必须指定变量的数
49、据类型及长度必须指定变量的数据类型及长度必须指定变量的数据类型及长度必须指定变量的数据类型及长度默认情况下,系统将声明后的变量设置为默认情况下,系统将声明后的变量设置为默认情况下,系统将声明后的变量设置为默认情况下,系统将声明后的变量设置为NULLNULL298.6 T-SQL8.6 T-SQL8.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量局部变量的作用域:局部变量的作用域:局部变量的作用域:局部变量的作用域:局部变量的局部变量的局部变量的局部变量的作用域从声明作用域从声明作用域从声明作用域从声明它们的地方它们的地方它们的地方它们的地方开
50、始开始开始开始到声明它们的批到声明它们的批到声明它们的批到声明它们的批处理或存储过程的结尾。处理或存储过程的结尾。处理或存储过程的结尾。处理或存储过程的结尾。30第第第第8 8章章章章 T-SQLT-SQL编程编程编程编程8.1 8.1 Transact-SQLTransact-SQL简介简介简介简介 8.2 8.2 T-SQLT-SQL中的批处理中的批处理中的批处理中的批处理 8.3 8.3 T-SQLT-SQL中的注释中的注释中的注释中的注释8.4 8.4 T-SQLT-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换 8.5 8.5 T-SQLT-SQL运算符运算符运算符运