SQLServer2008基础教程(5)_第1页
SQLServer2008基础教程(5)_第2页
SQLServer2008基础教程(5)_第3页
SQLServer2008基础教程(5)_第4页
SQLServer2008基础教程(5)_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、2021年10月27日第1页第第5章章 Transact-SQL语言语言本章概述 本章要点本章内容2021年10月27日第2页本章概述本章概述l如何方便地在数据库中执行访问数据库对象、查询业务数如何方便地在数据库中执行访问数据库对象、查询业务数据等各种操作呢?这需要掌握使用据等各种操作呢?这需要掌握使用Transact-SQL语言的语言的技术。技术。Transact-SQL语言是微软公司在关系型数据库管语言是微软公司在关系型数据库管理系统理系统Microsoft SQL Server中的中的ISO SQL的实现。的实现。SQL(Structure Query Language,结构化查询语言,

2、结构化查询语言)语语言是国际标准化组织言是国际标准化组织(International Standardize Organization,ISO)采纳的标准数据库语言。通过使用采纳的标准数据库语言。通过使用Transact-SQL语言,用户几乎可以完成语言,用户几乎可以完成SQL Server数据数据库中的各种操作。本章全面介绍库中的各种操作。本章全面介绍Transact-SQL语言的特语言的特点和使用方式。点和使用方式。2021年10月27日第3页本章要点本章要点lTransact-SQL语言和语言和SQL语言之间的关系语言之间的关系lTransact-SQL语言的特点和执行方式语言的特点和执

3、行方式l数据定义语言的类型和特点数据定义语言的类型和特点l数据操纵语言的类型和特点数据操纵语言的类型和特点l数据控制语言的类型和特点数据控制语言的类型和特点l事务管理语言的类型和特点事务管理语言的类型和特点l附加语言元素的类型和特点附加语言元素的类型和特点2021年10月27日第4页本章内容本章内容5.1 概述概述5.2 Transact-SQL语言的执行方式语言的执行方式5.3 数据定义语言数据定义语言5.4 数据操纵语言数据操纵语言5.5 数据控制语言数据控制语言5.6 事务管理语言事务管理语言5.7 附加的语言元素附加的语言元素5.8 数据类型数据类型5.9 内置函数内置函数5.10 本

4、章小结本章小结5.1 概述概述l1970年年6月,埃德加月,埃德加考特考特(Edgar Frank Codd)在在Communications of ACM 上发表了上发表了大型共享大型共享数据库数据的关系模型数据库数据的关系模型一文。首次明确而清晰一文。首次明确而清晰地为数据库系统提出了一种崭新的模型,地为数据库系统提出了一种崭新的模型, 即关系即关系模型。模型。1970 年以后,考特继续致力于完善与发展年以后,考特继续致力于完善与发展关系理论。关系理论。1972 年,他提出了关系代数和关系演年,他提出了关系代数和关系演算的概念,定义了关系的并、交、投影、选择、算的概念,定义了关系的并、交、

5、投影、选择、连接等各种基本运算,为连接等各种基本运算,为SQL语言的形成和发展语言的形成和发展奠定了理论基础。奠定了理论基础。1979年,年,SQL在商业数据库中在商业数据库中成功得到了应用。成功得到了应用。2021年10月27日第5页标准版本标准版本l1986年,美国国家标准化组织正式发表了编号为年,美国国家标准化组织正式发表了编号为X3.135-1986的的SQL标准,并且在标准,并且在1987年得到了年得到了ISO组织的认可,组织的认可,被命名为被命名为ISO9075-1987。l后来这个标准在后来这个标准在1992、1999、2003、2006、2008年等不年等不断地得到了扩充和完善

6、。断地得到了扩充和完善。1992年发布的标准是年发布的标准是SQL92,也称为也称为SQL2。1999年发布的标准称为年发布的标准称为SQL:1999,也称,也称为为SQL3。该版本增加了迭代查询、触发器、控制流以及。该版本增加了迭代查询、触发器、控制流以及面向对象功能。面向对象功能。2003年,年,SQL标准引入了标准引入了XML支持、自支持、自动生成值等特征。动生成值等特征。2006年的标准在年的标准在XML数据的存储和查数据的存储和查询方面有了更多的增强。询方面有了更多的增强。2021年10月27日第6页Transact-SQL语言语言lTransact-SQL语言是微软公司在语言是微软

7、公司在Microsoft SQL Server系统中使用的语言,系统中使用的语言,是对是对SQL语言的一种扩展形式。语言的一种扩展形式。lTransact-SQL语言是一种交互式查询语言,语言是一种交互式查询语言,具有功能强大、简单易学的特点。具有功能强大、简单易学的特点。2021年10月27日第7页特点特点lTransact-SQL语言有语言有4个特点:一是一体个特点:一是一体化的特点,集数据定义语言、数据操纵语化的特点,集数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加言、数据控制语言、事务管理语言和附加语言元素为一体。二是有两种使用方式,语言元素为一体。二是有两种使用方式,即

8、交互使用方式和嵌入到高级语言中的使即交互使用方式和嵌入到高级语言中的使用方式。三是非过程化语言,只需要提出用方式。三是非过程化语言,只需要提出“干什么干什么”,不需要指出,不需要指出“如何干如何干”,语,语句的操作过程由系统自动完成。四是类似句的操作过程由系统自动完成。四是类似于人的思维习惯,容易理解和掌握。于人的思维习惯,容易理解和掌握。2021年10月27日第8页类型类型l在在Microsoft SQL Server 2008系统中,根系统中,根据据Transact-SQL语言的功能特点,可以把语言的功能特点,可以把Transact-SQL语言分为语言分为5种类型,即数据种类型,即数据定义

9、语言、数据操纵语言、数据控制语言、定义语言、数据操纵语言、数据控制语言、事务管理语言和附加的语言元素。事务管理语言和附加的语言元素。2021年10月27日第9页5.2 Transact-SQL语言的执行语言的执行方式方式l在在Microsoft SQL Server 2008系统中,主系统中,主要使用要使用SQL Server Management Studio工具来执行工具来执行Transact-SQL语言编写的查询语言编写的查询语句。语句。l除此之外,还可以使用除此之外,还可以使用sqlcmd实用命令、实用命令、PowerShell工具来执行工具来执行Transact-SQL语句。语句。l

10、下面主要介绍下面主要介绍SQL Server Management Studio工具的特点。工具的特点。2021年10月27日第10页在查询窗口中执行在查询窗口中执行Transact-SQL语句语句2021年10月27日第11页5.3 数据定义语言数据定义语言l数据定义语言用于创建数据库和数据库对数据定义语言用于创建数据库和数据库对象,为数据库操作提供对象。象,为数据库操作提供对象。l例如,数据库以及表、触发器、存储过程、例如,数据库以及表、触发器、存储过程、视图、索引、函数、类型及用户等都是数视图、索引、函数、类型及用户等都是数据库中的对象,需要定义后才能使用。据库中的对象,需要定义后才能使

11、用。l在在DDL中,主要的中,主要的Transact-SQL语句包括语句包括CREATE语句、语句、ALTER语句和语句和DROP语句。语句。2021年10月27日第12页CREATE语句示例语句示例2021年10月27日第13页ALTER语句示例语句示例2021年10月27日第14页DROP语句示例语句示例2021年10月27日第15页5.4 数据操纵语言数据操纵语言l数据操纵语言主要是用于操纵表、视图中数据的数据操纵语言主要是用于操纵表、视图中数据的语句。当创建表对象之后,初始状态时该表是空语句。当创建表对象之后,初始状态时该表是空的,没有任何数据。如何向表中添加数据呢?这的,没有任何数据

12、。如何向表中添加数据呢?这时需要使用时需要使用INSERT语句。如何检索表中数据呢?语句。如何检索表中数据呢?可以使用可以使用SELECT语句。如果表中数据不正确,语句。如果表中数据不正确,可以使用可以使用UPDATE语句进行更新。当然,也可以语句进行更新。当然,也可以使用使用DELETE语句删除表中的数据。语句删除表中的数据。l实际上,实际上,DML语言包括了语言包括了INSERT、SELECT、UPDATE和和DELETE等语句。等语句。2021年10月27日第16页使用使用INSERT语句插入数据语句插入数据2021年10月27日第17页使用使用UPDATE语句更新数据语句更新数据202

13、1年10月27日第18页使用使用DELETE语句删除数据语句删除数据2021年10月27日第19页5.5 数据控制语言数据控制语言l数据控制语言数据控制语言(DCL)主要用来执行有关安全主要用来执行有关安全管理的操作,该语言主要包括管理的操作,该语言主要包括GRANT语句、语句、REVOKE语句和语句和DENY语句。语句。lGRANT语句可以将指定的安全对象的权限语句可以将指定的安全对象的权限授予相应的主体,授予相应的主体,REVOKE语句则删除授语句则删除授予的权限,予的权限,DENY语句拒绝授予主体权限,语句拒绝授予主体权限,并且防止主体通过组或角色成员继承权限。并且防止主体通过组或角色成

14、员继承权限。2021年10月27日第20页使用使用DCL语言示例语言示例2021年10月27日第21页5.6 事务管理语言事务管理语言l在在Microsoft SQL Server系统中,可以使用系统中,可以使用BEGIN TRANSACTION、COMMIT TRANSA- CTION和和ROLLBACK TRANSACTION等事务管等事务管理语言理语言(TML)语句来管理显式事务。语句来管理显式事务。l其中,其中,BEGIN TRANSACTION语句用于明确地语句用于明确地定义事务的开始,定义事务的开始,COMMIT TRANSACTION语句语句用于明确地提交完成的事务。如果事务中出

15、现了用于明确地提交完成的事务。如果事务中出现了错误,可以使用错误,可以使用ROLLBACK TRANSA CTION语语句明确地取消定义的事务。句明确地取消定义的事务。2021年10月27日第22页accounting表中转账前各账户的表中转账前各账户的信息信息2021年10月27日第23页使用事务管理语言示例使用事务管理语言示例2021年10月27日第24页accounting表中转账后各账户的表中转账后各账户的信息信息2021年10月27日第25页5.7 附加的语言元素附加的语言元素l除了前面介绍的语句之外,除了前面介绍的语句之外,Transact-SQL语言还包括了附加的语言元素。语言还

16、包括了附加的语言元素。l这些附加的语言元素主要包括标识符、变这些附加的语言元素主要包括标识符、变量和常量、运算符、表达式、数据类型、量和常量、运算符、表达式、数据类型、函数、控制流语言、错误处理语言和注释函数、控制流语言、错误处理语言和注释等。等。l下面,详细介绍这些内容。下面,详细介绍这些内容。2021年10月27日第26页标识符标识符l在在Transact-SQL语言中,数据库对象的名称就是语言中,数据库对象的名称就是其标识符。其标识符。l在在Microsoft SQL Server系统中,所有的数据库系统中,所有的数据库对象都可以有标识符,例如服务器、数据库、表、对象都可以有标识符,例如

17、服务器、数据库、表、视图、索引、触发器和约束等。大多数对象的标视图、索引、触发器和约束等。大多数对象的标识符是必需的,例如,创建表时必须为表指定标识符是必需的,例如,创建表时必须为表指定标识符。但是,也有一些对象的标识符是可选的,识符。但是,也有一些对象的标识符是可选的,例如,创建约束时用户可以不提供标识符,其标例如,创建约束时用户可以不提供标识符,其标识符由系统自动生成。识符由系统自动生成。2021年10月27日第27页分割标识符分割标识符l有两种情况下使用分割标识符:对象名称中包含有两种情况下使用分割标识符:对象名称中包含了了Microsoft SQL Server保留字,例如保留字,例如

18、where分割标识符;对象名称中使用了未列入限定字符分割标识符;对象名称中使用了未列入限定字符的字符,例如的字符,例如product1 table分割标识符。分割标识符。l使用双引号分割的标识符称为引用的标识符,使使用双引号分割的标识符称为引用的标识符,使用方括号分割的标识符称为括在括号中的标识符。用方括号分割的标识符称为括在括号中的标识符。默认情况下,只能使用括在括号中的标识符。当默认情况下,只能使用括在括号中的标识符。当QUOTED_IDENTIFIER选项设置为选项设置为ON时,才能时,才能使用引用的标识符。使用引用的标识符。2021年10月27日第28页变量和常量变量和常量l在在Mic

19、rosoft SQL Server 2008系统中,变系统中,变量也被称为局部变量,是可以保存单个特量也被称为局部变量,是可以保存单个特定类型数据值的对象。定类型数据值的对象。l一般地,经常在批处理和脚本中使用变量,一般地,经常在批处理和脚本中使用变量,这些变量可以作为计数器计算循环执行的这些变量可以作为计数器计算循环执行的次数或控制循环执行的次数;也可以保存次数或控制循环执行的次数;也可以保存数据值以供控制流语句测试;或者保存存数据值以供控制流语句测试;或者保存存储过程返回代码要返回的数据值或函数返储过程返回代码要返回的数据值或函数返回值。回值。2021年10月27日第29页声明和赋值声明和

20、赋值l在在Transact-SQL语言中,可以使用语言中,可以使用DECLARE语句声明语句声明变量。在声明变量时需要注意:第一,为变量指定名称,变量。在声明变量时需要注意:第一,为变量指定名称,且名称的第一个字符必须是且名称的第一个字符必须是;第二,指定该变量的数据;第二,指定该变量的数据类型和长度;第三,默认情况下将该变量值设置为类型和长度;第三,默认情况下将该变量值设置为NULL。l可以在一个可以在一个DECLARE语句中声明多个变量,变量之间使语句中声明多个变量,变量之间使用逗号分割开。变量的作用域是可以引用该变量的用逗号分割开。变量的作用域是可以引用该变量的Transact-SQL语

21、句的范围。变量的作用域从声明变量的语句的范围。变量的作用域从声明变量的地方开始到声明变量的批处理的结尾。地方开始到声明变量的批处理的结尾。l有两种为变量赋值的方式:使用有两种为变量赋值的方式:使用SET语句为变量赋值和使语句为变量赋值和使用用SELECT语句选择列表中当前所引用值来为变量赋值。语句选择列表中当前所引用值来为变量赋值。2021年10月27日第30页使用变量使用变量2021年10月27日第31页常量常量l常量是表示特定数据值的符号,常量也被常量是表示特定数据值的符号,常量也被称为字面量。称为字面量。l常量的格式取决于它所表示的值的数据类常量的格式取决于它所表示的值的数据类型。例如,

22、型。例如,This is a book.、May 1, 2006、98321等都是常量。对于字符常量等都是常量。对于字符常量或时间日期型常量,需要使用单引号引起或时间日期型常量,需要使用单引号引起来。来。2021年10月27日第32页运算符运算符l运算符是一种符号,用来指定要在一个或运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。在多个表达式中执行的操作。在Microsoft SQL Server 2008系统中,可以使用的运系统中,可以使用的运算符可以分为算术运算符、逻辑运算符、算符可以分为算术运算符、逻辑运算符、赋值运算符、字符串串联运算符、按位运赋值运算符、字符串串联运算符、

23、按位运算符、一元运算符和比较运算符等。算符、一元运算符和比较运算符等。l算术运算符可以用于对两个表达式进行数算术运算符可以用于对两个表达式进行数学运算,其类型如表学运算,其类型如表5-1所示。所示。2021年10月27日第33页使用算术运算符使用算术运算符2021年10月27日第34页使用逻辑运算符使用逻辑运算符2021年10月27日第35页使用赋值运算符使用赋值运算符2021年10月27日第36页使用字符串串联运算符使用字符串串联运算符2021年10月27日第37页使用位运算符使用位运算符2021年10月27日第38页使用比较运算符使用比较运算符2021年10月27日第39页表达式表达式l在

24、在Transact-SQL语言中,表达式是由标识符、变量、常语言中,表达式是由标识符、变量、常量、标量函数、子查询以及运算符等的组合。在量、标量函数、子查询以及运算符等的组合。在Microsoft SQL Server 2008系统中,表达式可以在多个系统中,表达式可以在多个不同的位置使用,这些位置包括查询中检索数据的一部分、不同的位置使用,这些位置包括查询中检索数据的一部分、搜索数据的条件等。搜索数据的条件等。l表达式可以分为简单表达式和复杂表达式两种类型。简单表达式可以分为简单表达式和复杂表达式两种类型。简单表达式只是一个变量、常量、列名或标量函数,复杂表达表达式只是一个变量、常量、列名或

25、标量函数,复杂表达式是由两个或多个简单表达式通过使用运算符连接起来的式是由两个或多个简单表达式通过使用运算符连接起来的表达式。在复杂表达式中,两个或多个表达式有相同的数表达式。在复杂表达式中,两个或多个表达式有相同的数据类型,优先级低的数据类型可以隐式地转换为优先级高据类型,优先级低的数据类型可以隐式地转换为优先级高的数据类型。的数据类型。2021年10月27日第40页使用复杂表达式使用复杂表达式2021年10月27日第41页控制流语言控制流语言l一般地,结构化程序设计语言的基本结构一般地,结构化程序设计语言的基本结构是顺序结构、条件分支结构和循环结构。是顺序结构、条件分支结构和循环结构。顺序

26、结构是一种自然结构,条件分支结构顺序结构是一种自然结构,条件分支结构和循环结构都需要根据程序的执行状况对和循环结构都需要根据程序的执行状况对程序的执行顺序进行调整。程序的执行顺序进行调整。l在在Transact-SQL语言中,用于控制语句流语言中,用于控制语句流的语言被称为控制流语言。的语言被称为控制流语言。Microsoft SQL Server 2008系统提供了系统提供了8种控制流语句,种控制流语句,这些语句如表这些语句如表5-7所示。所示。2021年10月27日第42页使用控制流语句使用控制流语句2021年10月27日第43页图图5-23示例的流程图示例的流程图2021年10月27日第

27、44页 开 始 计 算 所 有 产 品 的 平 均 价 格 平 均 价 格 800? 结 束 Y Y N N 错误捕捉语言错误捕捉语言l为了增强程序的健壮性,必须对程序中可为了增强程序的健壮性,必须对程序中可能出现的错误进行及时的处理。在能出现的错误进行及时的处理。在Transact- SQL语言中,可以使用两种方式语言中,可以使用两种方式处理发生的错误:使用处理发生的错误:使用TRYCATCH构造构造和使用和使用ERROR函数。函数。l在在Transact-SQL语句中,可以使用语句中,可以使用TRYCATCH构造来处理构造来处理Transact-SQL代代码中的错误。码中的错误。2021年

28、10月27日第45页使用使用TRYCATCH构造构造2021年10月27日第46页使用使用ERROR函数函数2021年10月27日第47页注释注释l所有的程序设计语言都有注释。注释是程序代码所有的程序设计语言都有注释。注释是程序代码中不执行的文本字符串,用于对代码进行说明或中不执行的文本字符串,用于对代码进行说明或暂时仅用正在进行诊断的部分语句。暂时仅用正在进行诊断的部分语句。l一般地,注释主要描述程序名称、作者名称、变一般地,注释主要描述程序名称、作者名称、变量说明、代码更改日期以及算法描述等。量说明、代码更改日期以及算法描述等。l在在Microsoft SQL Server系统中,支持两种

29、注释系统中,支持两种注释方式,即双连字符方式,即双连字符(-)注释方式和正斜杠星号字符注释方式和正斜杠星号字符对对(/*/)注释方式。注释方式。2021年10月27日第48页使用注释使用注释2021年10月27日第49页5.8 数据类型数据类型l本节将从本节将从6个方面介绍个方面介绍Transact-SQL语言语言的数据类型。首先,分析数据类型的概念、的数据类型。首先,分析数据类型的概念、特点和主要类型。然后,讲述数字数据类特点和主要类型。然后,讲述数字数据类型的主要内容和特点。之后,描述字符数型的主要内容和特点。之后,描述字符数据类型的使用方式。接下来,研究日期和据类型的使用方式。接下来,研

30、究日期和时间数据类型的输入输出特点。接着,分时间数据类型的输入输出特点。接着,分析二进制数据类型的特点。最后,讲述其析二进制数据类型的特点。最后,讲述其他数据类型的内容和特点。他数据类型的内容和特点。2021年10月27日第50页数据类型的类型和特点数据类型的类型和特点l在在Microsoft SQL Server 2008系统中,包含数据的对象都有一个数系统中,包含数据的对象都有一个数据类型。实际上,数据类型是一种用于指定对象可保存的数据的类型。据类型。实际上,数据类型是一种用于指定对象可保存的数据的类型。例如,例如,INT数据类型的对象只能包含整数型数据,数据类型的对象只能包含整数型数据,

31、DATETIME数据类数据类型的对象只能包含符合日期时间格式的数据。型的对象只能包含符合日期时间格式的数据。l在在Microsoft SQL Server 2008系统中,需要使用数据类型的对象包系统中,需要使用数据类型的对象包括表中的列、视图中的列、定义的局部变量、存储过程中的参数、括表中的列、视图中的列、定义的局部变量、存储过程中的参数、Transact-SQL函数及存储过程的返回值等。函数及存储过程的返回值等。lMicrosoft SQL Server 2008系统提供了系统提供了33种数据类型,比种数据类型,比SQL Server 2005系统的系统的28种数据类型增加了一些数据类型。

32、这些数据类种数据类型增加了一些数据类型。这些数据类型可以分为数字数据类型、字符数据类型、日期和时间数据类型、二型可以分为数字数据类型、字符数据类型、日期和时间数据类型、二进制数据类型以及其他数据类型。进制数据类型以及其他数据类型。2021年10月27日第51页数据类型数据类型l数字数据类型包括数字数据类型包括BIGINT、INT、SMALLINT、TINYINT、BIT、DECIMAL、NUMERIC、MONEY、SMALLMONEY、FLOAT和和REAL这这11种数据类型。种数据类型。l字符数据类型包括字符数据类型包括CHAR、VARCHAR、TEXT、NCHAR、NVARCHAR和和NT

33、EXT 等等6种数据类型。种数据类型。l日期和时间数据类型较以前有了很大的变化,除了日期和时间数据类型较以前有了很大的变化,除了DATETIME和和SMALLDATETIME两种数据类型之外,还包括两种数据类型之外,还包括DATE、TIME、DATETIME2、DATETIMEOFFSET数据类型,共有数据类型,共有6种数据类型。种数据类型。l二进制数据类型包括二进制数据类型包括BINARY、VARBINARY和和IMAGE这这3种数据类种数据类型。型。l除此之外,除此之外,Microsoft SQL Server 2008系统中还有系统中还有7种其他数据类种其他数据类型,分别是型,分别是CU

34、RSOR、SQL_VARIANT、TABLE、TIMESTAMP、UNIQUEIDENTIFIER、XML和和HIERARCHYID数据类型,其中,数据类型,其中,HIERARCHYID是新增的数据类型。是新增的数据类型。2021年10月27日第52页数字数据类型数字数据类型l使用数字数据的数据类型被称为数字数据类型。使用数字数据的数据类型被称为数字数据类型。这些数据类型的数字可以参加各种数学运算。还这些数据类型的数字可以参加各种数学运算。还可以为这些数据类型继续进行分类。从这些数字可以为这些数据类型继续进行分类。从这些数字是否有小数,可以把这些数据类型分为整数类型是否有小数,可以把这些数据类

35、型分为整数类型和小数类型。从这些数字的精度和位数是否可以和小数类型。从这些数字的精度和位数是否可以明确地确定,可以把这些数据类型分为精确数字明确地确定,可以把这些数据类型分为精确数字类型和近似数字类型。从是否可以表示金额,可类型和近似数字类型。从是否可以表示金额,可以分为货币数字类型和非货币数字类型。以分为货币数字类型和非货币数字类型。l下面,详细研究每一种数据类型的特点。下面,详细研究每一种数据类型的特点。2021年10月27日第53页 超出数据范围的溢出错误超出数据范围的溢出错误2021年10月27日第54页使用使用MONEY数据类型示例数据类型示例2021年10月27日第55页字符数据类

36、型字符数据类型l字符数据类型用于存储固定长度或可变长字符数据类型用于存储固定长度或可变长度的字符数据。在度的字符数据。在Microsoft SQL Server 2008系统中,提供了系统中,提供了CHAR、VARCHAR、TEXT、NCHAR、NVARCHAR和和NTEXT等等6种数据类型。前种数据类型。前3种数据类型是非种数据类型是非Unicode字符数据,后字符数据,后3种是种是Unicode字符字符数据。数据。2021年10月27日第56页日期和时间数据类型日期和时间数据类型l与以前版本相比,与以前版本相比,Microsoft SQL Server 2008系统增加了多个日期和时间数据

37、类型。系统增加了多个日期和时间数据类型。除了除了DATETIME和和SMALLDATETIME两种两种数据类型之间,还包括数据类型之间,还包括DATE、TIME、DATETIME2、DATETIMEOFFSET数据类数据类型,共有型,共有6种数据类型。种数据类型。2021年10月27日第57页使用日期数据使用日期数据2021年10月27日第58页二进制数据类型二进制数据类型l二进制数据类型包括二进制数据类型包括BINARY、VARBINARY和和IMAGE 3种数据类型,可以用于存储二进制数据。其中,种数据类型,可以用于存储二进制数据。其中,BINARY用于存储固定长度的二进制数据,用于存储固

38、定长度的二进制数据,VARBINARY用于存储用于存储可变长度的二进制数据。可变长度的二进制数据。BINARY(n)和和VARBINARY(n)的的数据长度由数据长度由n值来确定,值来确定,n的取值范围是的取值范围是18000。IMAGE数据类型用于存储图像信息。但是,在数据类型用于存储图像信息。但是,在Microsoft SQL Server 2008系统中,微软建议使用系统中,微软建议使用VARBINARY(MAX)代替代替IMAGE数据类型,其中数据类型,其中MAX可以达到的最大存储字可以达到的最大存储字节为节为231-1。2021年10月27日第59页使用二进制数据使用二进制数据202

39、1年10月27日第60页其他数据类型其他数据类型l除了前面介绍的数据类型之外,除了前面介绍的数据类型之外,Microsoft SQL Server 2008系统还提供了系统还提供了CURSOR、SQL_VARIANT、TABLE、TIMESTAMP、UNIQUEIDENTIFIER、XML以及以及HIERARCHYID等数据类型。等数据类型。l使用这些数据类型可以完成特殊数据对象使用这些数据类型可以完成特殊数据对象的定义、存储和使用。的定义、存储和使用。2021年10月27日第61页CURSORlCURSOR是变量或存储过程的输出参数使是变量或存储过程的输出参数使用的一种数据类型,有时也把这种

40、数据类用的一种数据类型,有时也把这种数据类型称为游标。游标提供了一种逐行处理查型称为游标。游标提供了一种逐行处理查询数据的功能。该变量只能用于与定义游询数据的功能。该变量只能用于与定义游标和使用游标有关的语句中,不能在诸如标和使用游标有关的语句中,不能在诸如CREATE TABLE语句中使用。语句中使用。2021年10月27日第62页SQL_VARIANTlSQL_VARIANT也是一种特殊的数据类型,也是一种特殊的数据类型,可以用来存储可以用来存储Microsoft SQL Server 2008系统支持的各种数据类型系统支持的各种数据类型(不包括不包括TEXT、NTEXT、IMAGE、TI

41、MESTAMP、SQL_VARIANT数据类型的值数据类型的值)的值。该数的值。该数据类型可以用在列、变量及用户定义的函据类型可以用在列、变量及用户定义的函数等返回值中。数等返回值中。2021年10月27日第63页TABLElTABLE也是一种非常特殊的数据类型,主也是一种非常特殊的数据类型,主要用于存储结果集以便今后继续处理,这要用于存储结果集以便今后继续处理,这些结果集往往是通过表值函数返回的。在些结果集往往是通过表值函数返回的。在Microsoft SQL Server 2008系统中,可以系统中,可以将变量和函数声明为将变量和函数声明为TABLE数据类型。在数据类型。在其作用范围内,其

42、作用范围内,TABLE变量可以作为表一变量可以作为表一样使用。但是,如果样使用。但是,如果TABLE数据类型的变数据类型的变量包含的数据量非常庞大时,会对系统的量包含的数据量非常庞大时,会对系统的性能造成比较大的影响。性能造成比较大的影响。2021年10月27日第64页TIMESTAMPlTIMESTAMP不是一个日期时间数据类型,是一不是一个日期时间数据类型,是一个特殊的用于表示先后顺序的时戳数据类型。该个特殊的用于表示先后顺序的时戳数据类型。该数据类型可以为表中数据行加上一个版本戳。每数据类型可以为表中数据行加上一个版本戳。每一个数据库都有一个时间戳计数器,当对该数据一个数据库都有一个时间

43、戳计数器,当对该数据库中包含库中包含TIMESTAMP列的表执行插入或更新操列的表执行插入或更新操作时,该计数器就会增加。一个表最多只能有一作时,该计数器就会增加。一个表最多只能有一个个TIMESTAMP,每次插入或更新包含,每次插入或更新包含TIMESTAMP列的数据行时,就会在列的数据行时,就会在TIMESTAMP列中插入增量数据库时戳值。列中插入增量数据库时戳值。2021年10月27日第65页UNIQUEIDENTIFIERlUNIQUEIDENTIFIER也是一个特殊的数据也是一个特殊的数据类型。它是一个具有类型。它是一个具有16字节的全局唯一性字节的全局唯一性标志符,用来确保对象的唯

44、一性。可以在标志符,用来确保对象的唯一性。可以在定义列或变量时使用该数据类型,这些定定义列或变量时使用该数据类型,这些定义的主要目的是在合并复制和事务复制中义的主要目的是在合并复制和事务复制中确保表中数据行的唯一性。确保表中数据行的唯一性。2021年10月27日第66页XMLlXML数据类型是从数据类型是从Microsoft SQL Server 2005版本开始新增的数据类型,用于存储版本开始新增的数据类型,用于存储XML数据。可以像使用数据。可以像使用INT数据类型一样地数据类型一样地使用使用XML数据类型。需要提醒的是,存储数据类型。需要提醒的是,存储在在XML数据类型中的数据实例的最大值是数据类型中的数据实例的最大值是2GB。2021年10月27日第67页HIERARC

温馨提示

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

评论

0/150

提交评论