首页 > 数据库 > SQL Server >

SQL数据类型归纳

2017-06-30

SQL数据类型归纳。1 二进制数据类型包括 binary、varbinary和image。binary数据类型既可是固定长度的(binary),也可是变长度的。binary[(N)]是n位固定的二进制数据。其中n取值范围从1到 8000。其存储大小是n+4个byte。

SQL数据类型归纳。

1.二进制数据类型包括 binary、varbinary和image。

binary数据类型既可是固定长度的(binary),也可是变长度的。binary[(N)]是n位固定的二进制数据。其中n取值范围从1到 8000。其存储大小是n+4个byte。此类型存储-9223372036854775808~9223372036854775807的整数,占用 8byte存储空间。

varbinary[(N)]是n位变长度的二进制数据。其中n的取值范围是从1到8000。其存储窨的大小是n+4个字节,不是n个字节。此数据类型存储可变长的二进制数据,可在创建时指定其具体长度,也可不指定。

image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server解释的,必须由应用程序来解释。例如应用程序可以使用BMP、TIEF、GIF和JPEG格式把数据存储在Image数据类型中。

2.字符数据类型包括char、varchar和text。

字符数据是由任何字母、符号和数字任意组合而成的数据。

varchar是变长字符数据,其长度不超过 8KB。此数据类型可存储最大值为8000个字符的可变长字符串。可变长字符串的最大长度在创建时指定,如varchar(50),每个字符占用1byte存储空间。

char是定长字符数据,其长度最多为 8KB。此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定;如未指定默认为char(1)。每个字符占用1byte存储空间。

text数据类型可存储最大值为2147483647个字符的变长文本,并且无需指定其初始值,每个字符占用1byte存储空间,一般用来存储大段的文章。 text数据类型实际上是一个Large Object数据类型,默认情况下,此类型的数据不是存储在数据行内,而是存储于独立的Large Object数据页上。另外,text数据类型不能做为函数、存储过程或触发器中的参数来用。

3.Unicode 数据类型 nchar、nvarchar和ntext。

在SQL Server中,传统的非Unicode数据类型允许使用由特定字符集定义的字符。在SQL Server安装过程中,允许选择一种字符集。使用Unicode数据类型,列中可以存储任何由Unicode标准定义的字符。使用Unicode数据类型是使用非Unicode数据类型所占用大小的两倍。在 Unicode 标准中包括了以各种字符集定义的全部字符。

nchar数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定;如未指定,默认为nchar(1)。每个字符占用2bytes存储空间。

nvarchar数据类型可存储最大值为4000个字符可变长Unicode字符串。可变长Unicode字符串的最大长度在创建时指定,如nvarchar(50),每个字符占用2bytes存储空间。

ntext同text数据类型,只是存储的最大值为1073741823个字符的Unicode变长文本,每个字符占用1byte存储空间。

说明:无论使用哪种字符串数据类型,字符串值必须放在引号内,推荐使用单引号。

4.日期和时间数据类型包括 datetime 和 smalldatetime 两种类型。

日期和时间数据类型由有效的日期和时间组成。

例如,有效的日期和时间数据包括4/01/98 12:15:00:00:00 PM和1:28:29:15:01 AM 8/17/98。

datetime数据类型是日期在前,时间在后。此数据类型包括datetime所存储的日期范围是从1753年1月1日开始,到9999年12月31日结束(每一个值要求8个存储字节)。

smalldatetime数据类型是瞬时在前,日期在后。此数据类型所存储的日期范围是1900年1月1日开始,到2079年12月31日结束(每一个值要求4个存储字节)。

5.数字数据类型包括数字int、smalint、tinyint、decimal、numeric、real和float数据类型,包括正数和负数、小数(浮点数)和整数 。

整数由正整数和负整数组成。在SQL Server 中整数存储数据类型是int,smallint和 tinyint。

int数据类型存储数据的范围大于smallint数据类型。存储数据的范围从-2147483648到2147483647(每一个值要求4个字节存储空间)。

smallint数据类型存储数据的范围从-3276832 767(每一个值要求2个字节存储空间)。

tinyint数据类型存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。

精确小数据中的数据类型是 decimal和numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。这两个数据类型功能相同,均为存储精度可变的浮点值。但推荐采用decimal,因其存储的数据“更有说明性”。此种数据类型由两个值来确定 decimal(p,s),p为精度,s为标量,如decimal(3,2),其中数值2为小数的位数,那么decimal(3,2)可用来存储如 1.28这样的浮点数。此种数据类型占用的存储空间取决于精度值p。p为1~9,占用5bytes存储空间;p为10~19,占用9bytes存储空间;p为20~28,占用13bytes存储空间;p为29~38,占用17bytes存储空间。

近似小数数据的数据类型是 float 和 real。

real数据类型存储-3.40E+38~-1.18E-38的负数和1.18E~3.40E+38的正数。占用4bytes存储空间。

float数据类型存储 1~53的可变精度的浮点值,精度表示为float(n),n表示科学记数法的尾数。其存储空间由精度值决定,n为1~24,占用4bytes存储空间;n为25~53,占用8bytes存储空间。取值范围为-1.79E+308~-2.23E-308的负数和 2.23E-308~1.79E+308的正数。例如,三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。

6.货币数据类型是money和smallmoney。此数据表示正的或者负的货币数量。

money数据类型要8bytes存储空间,存储-922337203685477.5808~922337203685477.5807的货币值,精确到小数后4位。

smallmoney数据类型4bytes存储空间,存储-214748.3648~214748.3647的货币值,精确到小数后4位。

7.特殊数据类型包括前面没有提过的数据类型。

即rowversion 、 timestamp、bit 和 uniqueidentifier。

rowversion、timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。这两种数据类型功能一样,但Microsoft建议在任何情况下尽可能地指明rowversion而不是 timestamp,因为rowversion更加准确地反应了数据类型的真实性质。timestamp 数据与插入数据或者日期和时间没有关系。它表明数据库中的数据修改发生的相对顺序。不要在键(尤其是主键)中使用 timestamp列,因为每次修改行时,timestamp值都会更改。当数据类型为rowversion或timestamp,那么SQL Server会在对表的插入或删除等更新操作时自动生成一个新值,并把这个新值放在合适的字段里。此类型数据占用8bytes存储空间。

bit由1或者0组成。当表示真或者假,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。

uniqueidentifier由16字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。

相关文章
最新文章
热点推荐