【SQL基础】T-SQL数据类型

【SQL基础】T-SQL数据类型

2023年7月13日发(作者:)

【SQL基础】T-SQL数据类型 主要学习T-SQL的数据类型:数值型数据类型,字符型数据类型,临时数据类型,混合型数据类型,附带有VARDECIMAL的DECIMAL存储类型。 1、数值数据类型 数值数据类型⽤于代表数据。具体看下表:数据类型INTEGER详细说明表⽰能够⽤4个字节保存的整数值,范围包括-2,147,483,648(-2~31)⾄2,147,483,647(2~31-1)。INT是INTEGER的缩写形式。表⽰能够⽤2个字节保存的整数值,范围从-32768(-2~16)⾄32767(2~16- 1)。表⽰能够⽤1个字节保存的,零以上的整数值,范围为0⾄255表⽰能够⽤8个字节保存的整数值。范围为-2~63⾄2~63-1描述定点直。p(精确度)指定数字个数和假定的⼩数点s(刻度)数字。DECIMAL值可以⽤5-17个字节保存,由p值决定字节个数。DEC为DECIMAL的缩写。和DECIMAL相同。适⽤于浮点值。包括正数值和负数值。正数值范围⼤约为2.23E-308⾄1..79E+308,负数值为-1.18E-38⾄-1.18E+38。表⽰浮点值,如REAL。p定义精确度,即p<25表⽰单精度(4个字节),p >=25为双倍精密度(8个字节)。表⽰币值。MONEY值和8字节的DECIMAL值⼀样。都是⼩数点后4个数字。和MONEY数据类型⼀样,只是⽤4个字节保存。SMALLINTTINYINTBIGINTDECIMAL(p,[s])NUMERIC(p,[s])REALFLOAT[(p)]MONEYSMALLMONEY

2、字符型数据类型 字符型数据类型⽤两种普通形式。它们可以是单字节的字符串,还可以使Unicode字符串。此外,字符串有固定或可变长度。具体看下表:数据类型CHAR[(n)]说明表⽰单字节,有固定长度的字符创,其中n为字符串内的字符个数。n的最⼤值为8000。如果省略了n,那么字符串的长度就假定为1。VARCHAR[(n)]表⽰单字节的字符可变长度的字符串(0

注:VARCHAR数据类型和CHAR数据类型基本⼀样,只有⼀点不同,如果⼀个CHAR(n)字符串⽐n个字符要短,那么其余的字符串就会⽤空格来填充。VARCHAR数据类型经常⽤数据长度存储。

3、临时数据类型 T-SQL⽀持的临时数据类型有:DATETIME、SMALLDATETIME、DATE、TIME、DATETIME2和DETETINEOFFSET。 DATETIME和SMALLDATETIME数据类型指定⽇期和时间,每个值都为整数并分别⽤4个字节或2个字节保存。 DATETIME和SMALLDATETIME的值是作为两个单独的数值保存的。DATETIME⽇期值的范围为01/01/1900⾄12/31/9999。SMALLDATETIME相应的值为01/01/1900⾄06/06/2079。时间部分能够再⽤4个字节或2个字节保存。它表⽰午夜过后的⼀秒的三百分之⼀(DATETIME)或分钟(SMALLDATETIME)。 如果只想保存⽇期或时间部分,那么使⽤DATETIME和SMALLDATETIME⾮常不⽅便。SQL SERVER 2008新增新的数据类型:DATE和TIME,这两种数据类型只能分别保存DATATIME数据的DATA或TIME部分。DATE数据类型⽤3个字节的保存并且范围为01/01/0001⾄12/31/9999。TIME数据类型⽤3-5个字节保存,且精确到100ns。 DATETIME2数据类型也是⼀种新的数据类型,⽤于保存精度度很⾼的⽇期和时间数据。这种数据类型能够根据要求定义可变长度。存储⼤⼩为6-8个字节。时间部分的精确度为100ns。

4、混合型数据类型 T-SQL的混合数据类型有:Binary,BIT,⼤对象数据类型,CURSOR,UNIQUEIDENTIFIER,SQL_VARTANT,TABLE,XML,Spatial,HIERARCHYID,TIMESTAMP和⾃定义数据类型。 4.1 BINARY和BIT BINARY和VARBINARY数据类型是两种⼆进制的数据类型。它们表⽰系统内部格式的数据对象。它们⽤来存储位串,因此这些值都是⼗六进制的数字。数据类型BINARY[(n)]VARBINARY[(n)]BIT详细说明指定有固定长度和n个字节的位串(0

4.2 ⼤对象数据类型 ⼤对象就是最⼤长度为2GB的数据对象。这些数据对象⼀般⽤来存储⼤型的⽂本数据、加载模块和⾳频/视频⽂件。T-SQL⽀持两种不同的指定和访问⽅式:使⽤VARCHAR(MAX),NVARCHAR(MAX)和VARBINARY(MAX)的数据类型;使⽤所谓的⽂本和图像数据类型。 TEXT、NTEXT和IMAGE数据类型组成了所谓的⽂本/图像数据类型。IMAGE类型的数据对象包含所有的数据(下载模块、⾳频/视频),⽽TEXT和NTEXT数据类型的数据对象包含⽂本数据。 ⽂本/图像数据类型和数据库的其他值区别保存默认值,存储⽅式为使⽤指向该数据字段的B-树型结构。⽽对于含有⽂本/图像数据类型的列来说,在数据⾏中存储了16字节的指⽰器,指定能找到数据的地⽅。 如果⽂本/图像数据⼩于32KB,指⽰器就指向了B-树型结构中的根部节点,该节点长度约为84字节。根部节点指向数据的物理模块。如果数据总量⼤于32KB,Database Engine就会在数据模块和根部节点建⽴中间节点。由于每个表都包含⼀个以上的有这种数据的列,列中的所有值都存储在⼀起。然⽽,⼀个物理页⾯能只包含单个表中的⽂本/图像数据。 ⽂本/图像数据类型有很多局限性。不能把他们当作本地变量。它们也不能作为索引的⼀部分,不能⽤在WHERE、ORDER BY和GROUP BY的⼦句中。有些时候可以使⽤VARCHAR(MAX),NVARCHAR(MAX)和VARBINARY(MAX)来代替⽂本/图像数据类型。 4.3 CURSOR

4.4 UNIQUEIDENTIFIER UNIQUEIDENTIFIER数据类型值是唯⼀辨别数字,它是⽤16个字节存储的⼆机制字符串,和全球唯⼀识别码密切相关,保证了在世界范围内的唯⼀性。因此,通过运⽤数据类型,可以在分布式的计算机中识别数据和对象。使⽤NEWID和NEWSEQUUENTIALID函数可以进⾏列或UNIQUEIDENTIFIER类型的变量初始化,并且字符串常量是⽤⼗六进制数字和连字符这种特殊格式书写的。 4.5 SQL_VARTANT SQL_VARIANT数据类型⽤于同时存储各种数据类型,如数值、字符串已经⽇期值等。只有TIMESTAMP类型值不能存储。SQL_VARIANT列中的每个值都有两个部分:⽇期值和描述值的信息。这些信息包含数据类型的所有属性,如长度、范围和精确度。 4.6 TABLE 4.7 XML 4.8 Spatial 4.9 HIERARCHYID UNIQUEIDENTIFIER数据类型⽤于保存整个层⾯,它是作为CLR⾃定义数据安装的,包括⼀些层级节点上的创建和操作的系统函数:GetAncestor(),GetDescendant(),Read()和Wriite(). 4.10 TIMESTAMP TIMESTAMP数据类型指定其中的⼀栏为VARBINARY(8)和BINARY(8),这是由列中的⽆效值决定的。系统包含每个数据库的当前值(不是⽇期或时间),这样在插⼊或更新含有TIMESTAMP列这样的⾏就会⾃动增加。 4.11 ⾃定义数据类型

5 附带有VARDECIMAL的DECIMAL存储类型 Vardecimal 是⼀种存储格式,⽽不是数据类型。 vardecimal 存储格式可以⼤⼤减少数据的存储⼤⼩,但确实增加了少量 CPU 开销。vardecimal 存储格式应⽤于表级别。也就是说,不能只将表中的某些 decimal 列存储为 vardecimal 存储格式⽽不将其他列存储为该格式。decimal 数据将保持为本⾝的数据类型。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689246069a225600.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信